<?php

/**
 * Smarty Internal Plugin Templateparser
 *
 * This is the template parser.
 * It is generated from the internal.templateparser.y file
 *
 * @package    Smarty
 * @subpackage Compiler
 * @author     Uwe Tews
 */
class TP_yyToken implements ArrayAccess {
	public $string = '';
	public $metadata = array();

	function __construct($s, $m = array()) {
		if ($s instanceof TP_yyToken)
		{
			$this->string = $s->string;
			$this->metadata = $s->metadata;
		}
		else
		{
			$this->string = (string)$s;
			if ($m instanceof TP_yyToken)
			{
				$this->metadata = $m->metadata;
			}
			elseif (is_array($m))
			{
				$this->metadata = $m;
			}
		}
	}

	function __toString() {
		return $this->_string;
	}

	function offsetExists($offset) {
		return isset($this->metadata[$offset]);
	}

	function offsetGet($offset) {
		return $this->metadata[$offset];
	}

	function offsetSet($offset, $value) {
		if ($offset === null)
		{
			if (isset($value[0]))
			{
				$x = ($value instanceof TP_yyToken) ? $value->metadata : $value;
				$this->metadata = array_merge($this->metadata, $x);

				return;
			}
			$offset = count($this->metadata);
		}
		if ($value === null)
		{
			return;
		}
		if ($value instanceof TP_yyToken)
		{
			if ($value->metadata)
			{
				$this->metadata[$offset] = $value->metadata;
			}
		}
		elseif ($value)
		{
			$this->metadata[$offset] = $value;
		}
	}

	function offsetUnset($offset) {
		unset($this->metadata[$offset]);
	}
}

class TP_yyStackEntry {
	public $stateno; /* The state-number */
	public $major; /* The major token value.  This is the code
                     ** number for the token at this stack level */
	public $minor; /* The user-supplied minor token value.  This
                     ** is the value of the token  */
}

;


#line 12 "smarty_internal_templateparser.y"
class Smarty_Internal_Templateparser #line 79 "smarty_internal_templateparser.php"
{
	#line 14 "smarty_internal_templateparser.y"

	const Err1 = "Security error: Call to private object member not allowed";
	const Err2 = "Security error: Call to dynamic object member not allowed";
	const Err3 = "PHP in template not allowed. Use SmartyBC to enable it";
	// states whether the parse was successful or not
	public $successful = true;
	public $retvalue = 0;
	private $lex;
	private $internalError = false;
	private $strip = false;

	function __construct($lex, $compiler) {
		$this->lex = $lex;
		$this->compiler = $compiler;
		$this->smarty = $this->compiler->smarty;
		$this->template = $this->compiler->template;
		$this->compiler->has_variable_string = false;
		$this->compiler->prefix_code = array();
		$this->prefix_number = 0;
		$this->block_nesting_level = 0;
		if ($this->security = isset($this->smarty->security_policy))
		{
			$this->php_handling = $this->smarty->security_policy->php_handling;
		}
		else
		{
			$this->php_handling = $this->smarty->php_handling;
		}
		$this->is_xml = false;
		$this->asp_tags = (ini_get('asp_tags') != '0');
		$this->current_buffer = $this->root_buffer = new _smarty_template_buffer($this);
	}

	public static function escape_start_tag($tag_text) {
		$tag = preg_replace('/\A<\?(.*)\z/', '<<?php ?>?\1', $tag_text, -1, $count); //Escape tag
		return $tag;
	}

	public static function escape_end_tag($tag_text) {
		return '?<?php ?>>';
	}

	public function compileVariable($variable) {
		if (strpos($variable, '(') == 0)
		{
			// not a variable variable
			$var = trim($variable, '\'');
			$this->compiler->tag_nocache = $this->compiler->tag_nocache | $this->template->getVariable($var, null, true, false)->nocache;
			$this->template->properties['variables'][$var] = $this->compiler->tag_nocache | $this->compiler->nocache;
		}

		//       return '(isset($_smarty_tpl->tpl_vars['. $variable .'])?$_smarty_tpl->tpl_vars['. $variable .']->value:$_smarty_tpl->getVariable('. $variable .')->value)';
		return '$_smarty_tpl->tpl_vars[' . $variable . ']->value';
	}

	#line 132 "smarty_internal_templateparser.php"

	const TP_VERT = 1;
	const TP_COLON = 2;
	const TP_COMMENT = 3;
	const TP_PHPSTARTTAG = 4;
	const TP_PHPENDTAG = 5;
	const TP_ASPSTARTTAG = 6;
	const TP_ASPENDTAG = 7;
	const TP_FAKEPHPSTARTTAG = 8;
	const TP_XMLTAG = 9;
	const TP_TEXT = 10;
	const TP_STRIPON = 11;
	const TP_STRIPOFF = 12;
	const TP_LITERALSTART = 13;
	const TP_LITERALEND = 14;
	const TP_LITERAL = 15;
	const TP_LDEL = 16;
	const TP_RDEL = 17;
	const TP_DOLLAR = 18;
	const TP_ID = 19;
	const TP_EQUAL = 20;
	const TP_PTR = 21;
	const TP_LDELIF = 22;
	const TP_LDELFOR = 23;
	const TP_SEMICOLON = 24;
	const TP_INCDEC = 25;
	const TP_TO = 26;
	const TP_STEP = 27;
	const TP_LDELFOREACH = 28;
	const TP_SPACE = 29;
	const TP_AS = 30;
	const TP_APTR = 31;
	const TP_LDELSETFILTER = 32;
	const TP_SMARTYBLOCKCHILD = 33;
	const TP_LDELSLASH = 34;
	const TP_ATTR = 35;
	const TP_INTEGER = 36;
	const TP_COMMA = 37;
	const TP_OPENP = 38;
	const TP_CLOSEP = 39;
	const TP_MATH = 40;
	const TP_UNIMATH = 41;
	const TP_ANDSYM = 42;
	const TP_ISIN = 43;
	const TP_ISDIVBY = 44;
	const TP_ISNOTDIVBY = 45;
	const TP_ISEVEN = 46;
	const TP_ISNOTEVEN = 47;
	const TP_ISEVENBY = 48;
	const TP_ISNOTEVENBY = 49;
	const TP_ISODD = 50;
	const TP_ISNOTODD = 51;
	const TP_ISODDBY = 52;
	const TP_ISNOTODDBY = 53;
	const TP_INSTANCEOF = 54;
	const TP_QMARK = 55;
	const TP_NOT = 56;
	const TP_TYPECAST = 57;
	const TP_HEX = 58;
	const TP_DOT = 59;
	const TP_SINGLEQUOTESTRING = 60;
	const TP_DOUBLECOLON = 61;
	const TP_AT = 62;
	const TP_HATCH = 63;
	const TP_OPENB = 64;
	const TP_CLOSEB = 65;
	const TP_EQUALS = 66;
	const TP_NOTEQUALS = 67;
	const TP_GREATERTHAN = 68;
	const TP_LESSTHAN = 69;
	const TP_GREATEREQUAL = 70;
	const TP_LESSEQUAL = 71;
	const TP_IDENTITY = 72;
	const TP_NONEIDENTITY = 73;
	const TP_MOD = 74;
	const TP_LAND = 75;
	const TP_LOR = 76;
	const TP_LXOR = 77;
	const TP_QUOTE = 78;
	const TP_BACKTICK = 79;
	const TP_DOLLARID = 80;
	const YY_NO_ACTION = 597;
	const YY_ACCEPT_ACTION = 596;
	const YY_ERROR_ACTION = 595;

	const YY_SZ_ACTTAB = 2383;
	static public $yy_action = array(
		/*     0 */
		225,
		275,
		263,
		276,
		259,
		257,
		260,
		390,
		356,
		359,
		/*    10 */
		353,
		193,
		18,
		127,
		42,
		317,
		381,
		351,
		196,
		350,
		/*    20 */
		6,
		108,
		24,
		98,
		128,
		190,
		134,
		318,
		41,
		41,
		/*    30 */
		249,
		329,
		231,
		18,
		43,
		43,
		317,
		26,
		298,
		50,
		/*    40 */
		47,
		48,
		44,
		10,
		13,
		305,
		306,
		12,
		11,
		340,
		/*    50 */
		341,
		40,
		20,
		387,
		308,
		307,
		309,
		374,
		254,
		248,
		/*    60 */
		252,
		217,
		193,
		385,
		291,
		375,
		376,
		377,
		373,
		372,
		/*    70 */
		368,
		367,
		369,
		370,
		371,
		378,
		379,
		225,
		312,
		255,
		/*    80 */
		225,
		225,
		118,
		2,
		207,
		76,
		135,
		596,
		95,
		281,
		/*    90 */
		271,
		264,
		2,
		366,
		315,
		386,
		461,
		383,
		232,
		294,
		/*   100 */
		303,
		388,
		313,
		389,
		227,
		41,
		144,
		225,
		461,
		245,
		/*   110 */
		282,
		43,
		218,
		358,
		461,
		144,
		50,
		47,
		48,
		44,
		/*   120 */
		10,
		13,
		305,
		306,
		12,
		11,
		340,
		341,
		40,
		20,
		/*   130 */
		105,
		177,
		522,
		46,
		46,
		41,
		19,
		522,
		143,
		297,
		/*   140 */
		325,
		43,
		375,
		376,
		377,
		373,
		372,
		368,
		367,
		369,
		/*   150 */
		370,
		371,
		378,
		379,
		225,
		312,
		293,
		206,
		225,
		141,
		/*   160 */
		124,
		225,
		54,
		119,
		123,
		225,
		459,
		38,
		173,
		246,
		/*   170 */
		319,
		315,
		386,
		347,
		455,
		232,
		294,
		303,
		459,
		313,
		/*   180 */
		139,
		321,
		41,
		31,
		459,
		41,
		41,
		2,
		43,
		188,
		/*   190 */
		2,
		43,
		43,
		50,
		47,
		48,
		44,
		10,
		13,
		305,
		/*   200 */
		306,
		12,
		11,
		340,
		341,
		40,
		20,
		225,
		136,
		301,
		/*   210 */
		144,
		194,
		350,
		144,
		46,
		202,
		206,
		328,
		198,
		375,
		/*   220 */
		376,
		377,
		373,
		372,
		368,
		367,
		369,
		370,
		371,
		378,
		/*   230 */
		379,
		21,
		9,
		28,
		185,
		41,
		318,
		225,
		265,
		271,
		/*   240 */
		264,
		43,
		206,
		27,
		173,
		206,
		50,
		47,
		48,
		44,
		/*   250 */
		10,
		13,
		305,
		306,
		12,
		11,
		340,
		341,
		40,
		20,
		/*   260 */
		225,
		178,
		18,
		212,
		330,
		317,
		17,
		32,
		8,
		14,
		/*   270 */
		325,
		267,
		375,
		376,
		377,
		373,
		372,
		368,
		367,
		369,
		/*   280 */
		370,
		371,
		378,
		379,
		136,
		363,
		363,
		207,
		41,
		4,
		/*   290 */
		46,
		5,
		131,
		233,
		43,
		25,
		186,
		289,
		318,
		50,
		/*   300 */
		47,
		48,
		44,
		10,
		13,
		305,
		306,
		12,
		11,
		340,
		/*   310 */
		341,
		40,
		20,
		225,
		100,
		161,
		18,
		355,
		361,
		317,
		/*   320 */
		26,
		109,
		360,
		346,
		325,
		375,
		376,
		377,
		373,
		372,
		/*   330 */
		368,
		367,
		369,
		370,
		371,
		378,
		379,
		106,
		201,
		172,
		/*   340 */
		25,
		206,
		288,
		25,
		18,
		261,
		181,
		317,
		325,
		45,
		/*   350 */
		339,
		129,
		50,
		47,
		48,
		44,
		10,
		13,
		305,
		306,
		/*   360 */
		12,
		11,
		340,
		341,
		40,
		20,
		225,
		104,
		162,
		18,
		/*   370 */
		16,
		205,
		317,
		206,
		248,
		238,
		43,
		325,
		375,
		376,
		/*   380 */
		377,
		373,
		372,
		368,
		367,
		369,
		370,
		371,
		378,
		379,
		/*   390 */
		255,
		354,
		243,
		229,
		206,
		342,
		18,
		239,
		242,
		241,
		/*   400 */
		248,
		266,
		300,
		330,
		240,
		50,
		47,
		48,
		44,
		10,
		/*   410 */
		13,
		305,
		306,
		12,
		11,
		340,
		341,
		40,
		20,
		225,
		/*   420 */
		165,
		176,
		184,
		18,
		18,
		18,
		253,
		215,
		251,
		325,
		/*   430 */
		325,
		375,
		376,
		377,
		373,
		372,
		368,
		367,
		369,
		370,
		/*   440 */
		371,
		378,
		379,
		304,
		268,
		159,
		207,
		207,
		247,
		206,
		/*   450 */
		148,
		41,
		195,
		350,
		325,
		27,
		33,
		43,
		50,
		47,
		/*   460 */
		48,
		44,
		10,
		13,
		305,
		306,
		12,
		11,
		340,
		341,
		/*   470 */
		40,
		20,
		163,
		225,
		328,
		199,
		133,
		29,
		187,
		23,
		/*   480 */
		250,
		325,
		101,
		225,
		375,
		376,
		377,
		373,
		372,
		368,
		/*   490 */
		367,
		369,
		370,
		371,
		378,
		379,
		225,
		298,
		207,
		334,
		/*   500 */
		225,
		45,
		312,
		103,
		299,
		192,
		154,
		364,
		18,
		302,
		/*   510 */
		135,
		317,
		285,
		35,
		173,
		203,
		320,
		3,
		236,
		6,
		/*   520 */
		108,
		41,
		232,
		294,
		303,
		134,
		313,
		43,
		130,
		249,
		/*   530 */
		329,
		231,
		250,
		225,
		280,
		50,
		47,
		48,
		44,
		10,
		/*   540 */
		13,
		305,
		306,
		12,
		11,
		340,
		341,
		40,
		20,
		336,
		/*   550 */
		36,
		166,
		212,
		230,
		332,
		228,
		338,
		8,
		132,
		330,
		/*   560 */
		325,
		375,
		376,
		377,
		373,
		372,
		368,
		367,
		369,
		370,
		/*   570 */
		371,
		378,
		379,
		225,
		312,
		345,
		37,
		362,
		141,
		312,
		/*   580 */
		94,
		77,
		135,
		156,
		236,
		182,
		173,
		135,
		122,
		204,
		/*   590 */
		315,
		386,
		365,
		225,
		232,
		294,
		303,
		137,
		313,
		232,
		/*   600 */
		294,
		303,
		125,
		313,
		41,
		222,
		333,
		180,
		277,
		337,
		/*   610 */
		43,
		225,
		50,
		47,
		48,
		44,
		10,
		13,
		305,
		306,
		/*   620 */
		12,
		11,
		340,
		341,
		40,
		20,
		136,
		335,
		316,
		5,
		/*   630 */
		22,
		197,
		269,
		34,
		173,
		148,
		126,
		116,
		375,
		376,
		/*   640 */
		377,
		373,
		372,
		368,
		367,
		369,
		370,
		371,
		378,
		379,
		/*   650 */
		225,
		312,
		298,
		225,
		292,
		141,
		312,
		258,
		77,
		135,
		/*   660 */
		153,
		183,
		318,
		301,
		135,
		175,
		284,
		315,
		386,
		461,
		/*   670 */
		117,
		232,
		294,
		303,
		325,
		313,
		232,
		294,
		303,
		382,
		/*   680 */
		313,
		461,
		220,
		110,
		329,
		298,
		318,
		461,
		329,
		50,
		/*   690 */
		47,
		48,
		44,
		10,
		13,
		305,
		306,
		12,
		11,
		340,
		/*   700 */
		341,
		40,
		20,
		225,
		30,
		191,
		46,
		189,
		314,
		107,
		/*   710 */
		329,
		329,
		146,
		97,
		102,
		375,
		376,
		377,
		373,
		372,
		/*   720 */
		368,
		367,
		369,
		370,
		371,
		378,
		379,
		298,
		298,
		298,
		/*   730 */
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		/*   740 */
		329,
		329,
		50,
		47,
		48,
		44,
		10,
		13,
		305,
		306,
		/*   750 */
		12,
		11,
		340,
		341,
		40,
		20,
		225,
		329,
		329,
		329,
		/*   760 */
		329,
		329,
		329,
		329,
		329,
		114,
		160,
		115,
		375,
		376,
		/*   770 */
		377,
		373,
		372,
		368,
		367,
		369,
		370,
		371,
		378,
		379,
		/*   780 */
		298,
		298,
		298,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		/*   790 */
		329,
		329,
		329,
		329,
		283,
		50,
		47,
		48,
		44,
		10,
		/*   800 */
		13,
		305,
		306,
		12,
		11,
		340,
		341,
		40,
		20,
		329,
		/*   810 */
		225,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		/*   820 */
		329,
		375,
		376,
		377,
		373,
		372,
		368,
		367,
		369,
		370,
		/*   830 */
		371,
		378,
		379,
		200,
		329,
		329,
		329,
		329,
		329,
		329,
		/*   840 */
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		50,
		/*   850 */
		47,
		48,
		44,
		10,
		13,
		305,
		306,
		12,
		11,
		340,
		/*   860 */
		341,
		40,
		20,
		225,
		329,
		329,
		329,
		329,
		329,
		329,
		/*   870 */
		329,
		329,
		329,
		329,
		329,
		375,
		376,
		377,
		373,
		372,
		/*   880 */
		368,
		367,
		369,
		370,
		371,
		378,
		379,
		329,
		329,
		329,
		/*   890 */
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		/*   900 */
		329,
		329,
		50,
		47,
		48,
		44,
		10,
		13,
		305,
		306,
		/*   910 */
		12,
		11,
		340,
		341,
		40,
		20,
		329,
		329,
		329,
		329,
		/*   920 */
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		290,
		375,
		376,
		/*   930 */
		377,
		373,
		372,
		368,
		367,
		369,
		370,
		371,
		378,
		379,
		/*   940 */
		225,
		312,
		329,
		225,
		329,
		141,
		312,
		329,
		77,
		135,
		/*   950 */
		152,
		329,
		329,
		329,
		135,
		158,
		208,
		315,
		386,
		458,
		/*   960 */
		329,
		232,
		294,
		303,
		325,
		313,
		232,
		294,
		303,
		329,
		/*   970 */
		313,
		458,
		223,
		329,
		329,
		329,
		318,
		458,
		329,
		50,
		/*   980 */
		47,
		48,
		44,
		10,
		13,
		305,
		306,
		12,
		11,
		340,
		/*   990 */
		341,
		40,
		20,
		225,
		329,
		329,
		46,
		329,
		329,
		329,
		/*  1000 */
		329,
		329,
		329,
		329,
		329,
		375,
		376,
		377,
		373,
		372,
		/*  1010 */
		368,
		367,
		369,
		370,
		371,
		378,
		379,
		329,
		329,
		329,
		/*  1020 */
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		/*  1030 */
		329,
		329,
		50,
		47,
		48,
		44,
		10,
		13,
		305,
		306,
		/*  1040 */
		12,
		11,
		340,
		341,
		40,
		20,
		329,
		329,
		329,
		329,
		/*  1050 */
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		375,
		376,
		/*  1060 */
		377,
		373,
		372,
		368,
		367,
		369,
		370,
		371,
		378,
		379,
		/*  1070 */
		329,
		329,
		329,
		50,
		47,
		48,
		44,
		10,
		13,
		305,
		/*  1080 */
		306,
		12,
		11,
		340,
		341,
		40,
		20,
		329,
		329,
		329,
		/*  1090 */
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		375,
		/*  1100 */
		376,
		377,
		373,
		372,
		368,
		367,
		369,
		370,
		371,
		378,
		/*  1110 */
		379,
		329,
		329,
		329,
		329,
		329,
		42,
		329,
		145,
		211,
		/*  1120 */
		329,
		329,
		6,
		108,
		329,
		279,
		329,
		312,
		134,
		329,
		/*  1130 */
		329,
		150,
		249,
		329,
		231,
		135,
		235,
		41,
		39,
		329,
		/*  1140 */
		329,
		52,
		329,
		43,
		311,
		329,
		312,
		232,
		294,
		303,
		/*  1150 */
		147,
		313,
		329,
		170,
		135,
		329,
		51,
		49,
		331,
		237,
		/*  1160 */
		296,
		329,
		325,
		106,
		1,
		278,
		232,
		294,
		303,
		329,
		/*  1170 */
		313,
		155,
		329,
		42,
		318,
		145,
		216,
		329,
		96,
		6,
		/*  1180 */
		108,
		18,
		329,
		226,
		317,
		134,
		329,
		313,
		329,
		249,
		/*  1190 */
		329,
		231,
		329,
		235,
		41,
		39,
		256,
		329,
		52,
		329,
		/*  1200 */
		43,
		329,
		312,
		329,
		329,
		329,
		141,
		329,
		329,
		66,
		/*  1210 */
		119,
		238,
		329,
		51,
		49,
		331,
		237,
		296,
		315,
		386,
		/*  1220 */
		106,
		1,
		232,
		294,
		303,
		329,
		313,
		270,
		329,
		329,
		/*  1230 */
		42,
		329,
		140,
		92,
		329,
		96,
		6,
		108,
		18,
		41,
		/*  1240 */
		169,
		317,
		134,
		329,
		273,
		43,
		249,
		329,
		231,
		325,
		/*  1250 */
		235,
		41,
		39,
		244,
		329,
		52,
		41,
		43,
		329,
		312,
		/*  1260 */
		329,
		318,
		43,
		141,
		329,
		329,
		67,
		135,
		225,
		329,
		/*  1270 */
		51,
		49,
		331,
		237,
		296,
		315,
		386,
		106,
		1,
		224,
		/*  1280 */
		294,
		303,
		329,
		313,
		310,
		329,
		329,
		42,
		329,
		145,
		/*  1290 */
		213,
		329,
		96,
		6,
		108,
		329,
		41,
		329,
		329,
		134,
		/*  1300 */
		329,
		323,
		43,
		249,
		329,
		231,
		329,
		235,
		329,
		39,
		/*  1310 */
		329,
		329,
		52,
		41,
		329,
		329,
		312,
		329,
		329,
		43,
		/*  1320 */
		141,
		46,
		329,
		86,
		135,
		329,
		329,
		51,
		49,
		331,
		/*  1330 */
		237,
		296,
		315,
		386,
		106,
		1,
		232,
		294,
		303,
		329,
		/*  1340 */
		313,
		274,
		329,
		329,
		42,
		329,
		142,
		216,
		329,
		96,
		/*  1350 */
		6,
		108,
		329,
		41,
		329,
		329,
		134,
		329,
		348,
		43,
		/*  1360 */
		249,
		329,
		231,
		329,
		235,
		329,
		7,
		329,
		329,
		52,
		/*  1370 */
		41,
		329,
		329,
		312,
		329,
		329,
		43,
		141,
		329,
		329,
		/*  1380 */
		90,
		135,
		329,
		329,
		51,
		49,
		331,
		237,
		296,
		315,
		/*  1390 */
		386,
		106,
		1,
		232,
		294,
		303,
		329,
		313,
		295,
		329,
		/*  1400 */
		329,
		42,
		329,
		138,
		216,
		329,
		96,
		6,
		108,
		329,
		/*  1410 */
		41,
		329,
		329,
		134,
		329,
		322,
		43,
		249,
		329,
		231,
		/*  1420 */
		329,
		235,
		329,
		39,
		329,
		329,
		52,
		41,
		329,
		329,
		/*  1430 */
		312,
		329,
		329,
		43,
		141,
		329,
		329,
		87,
		135,
		329,
		/*  1440 */
		329,
		51,
		49,
		331,
		237,
		296,
		315,
		386,
		106,
		1,
		/*  1450 */
		232,
		294,
		303,
		329,
		313,
		384,
		329,
		329,
		42,
		329,
		/*  1460 */
		131,
		216,
		329,
		96,
		6,
		108,
		329,
		41,
		329,
		329,
		/*  1470 */
		134,
		329,
		380,
		43,
		249,
		329,
		231,
		329,
		235,
		329,
		/*  1480 */
		15,
		329,
		329,
		52,
		41,
		329,
		329,
		312,
		329,
		329,
		/*  1490 */
		43,
		141,
		329,
		329,
		79,
		135,
		329,
		329,
		51,
		49,
		/*  1500 */
		331,
		237,
		296,
		315,
		386,
		106,
		1,
		232,
		294,
		303,
		/*  1510 */
		329,
		313,
		272,
		329,
		329,
		42,
		329,
		145,
		210,
		329,
		/*  1520 */
		96,
		6,
		108,
		329,
		41,
		329,
		329,
		134,
		329,
		349,
		/*  1530 */
		43,
		249,
		329,
		231,
		329,
		221,
		329,
		39,
		329,
		329,
		/*  1540 */
		52,
		41,
		329,
		329,
		312,
		329,
		329,
		43,
		141,
		329,
		/*  1550 */
		329,
		70,
		135,
		329,
		329,
		51,
		49,
		331,
		237,
		296,
		/*  1560 */
		315,
		386,
		106,
		1,
		232,
		294,
		303,
		329,
		313,
		324,
		/*  1570 */
		329,
		329,
		42,
		329,
		145,
		209,
		329,
		96,
		6,
		108,
		/*  1580 */
		329,
		41,
		329,
		329,
		134,
		329,
		326,
		43,
		249,
		329,
		/*  1590 */
		231,
		329,
		235,
		329,
		39,
		329,
		329,
		52,
		41,
		329,
		/*  1600 */
		329,
		312,
		329,
		329,
		43,
		141,
		329,
		329,
		74,
		135,
		/*  1610 */
		329,
		329,
		51,
		49,
		331,
		237,
		296,
		315,
		386,
		106,
		/*  1620 */
		1,
		232,
		294,
		303,
		329,
		313,
		262,
		329,
		329,
		42,
		/*  1630 */
		329,
		131,
		214,
		329,
		96,
		6,
		108,
		329,
		41,
		329,
		/*  1640 */
		329,
		134,
		329,
		327,
		43,
		249,
		329,
		231,
		329,
		235,
		/*  1650 */
		329,
		15,
		329,
		329,
		52,
		41,
		329,
		329,
		312,
		329,
		/*  1660 */
		329,
		43,
		141,
		329,
		329,
		53,
		135,
		329,
		329,
		51,
		/*  1670 */
		49,
		331,
		237,
		296,
		315,
		386,
		106,
		329,
		232,
		294,
		/*  1680 */
		303,
		329,
		313,
		286,
		329,
		329,
		42,
		329,
		131,
		216,
		/*  1690 */
		329,
		96,
		6,
		108,
		329,
		41,
		329,
		329,
		134,
		329,
		/*  1700 */
		343,
		43,
		249,
		329,
		231,
		329,
		235,
		329,
		15,
		329,
		/*  1710 */
		329,
		52,
		41,
		329,
		329,
		312,
		329,
		329,
		43,
		118,
		/*  1720 */
		329,
		329,
		76,
		135,
		329,
		329,
		51,
		49,
		331,
		237,
		/*  1730 */
		296,
		315,
		386,
		106,
		329,
		232,
		294,
		303,
		329,
		313,
		/*  1740 */
		329,
		329,
		329,
		329,
		504,
		329,
		329,
		329,
		96,
		329,
		/*  1750 */
		357,
		504,
		329,
		504,
		504,
		364,
		504,
		504,
		329,
		329,
		/*  1760 */
		329,
		35,
		504,
		329,
		504,
		2,
		504,
		6,
		108,
		329,
		/*  1770 */
		198,
		174,
		329,
		134,
		329,
		329,
		329,
		249,
		329,
		231,
		/*  1780 */
		325,
		504,
		329,
		21,
		9,
		329,
		329,
		329,
		144,
		329,
		/*  1790 */
		329,
		329,
		504,
		329,
		312,
		99,
		179,
		206,
		141,
		329,
		/*  1800 */
		329,
		58,
		135,
		329,
		329,
		325,
		504,
		329,
		21,
		9,
		/*  1810 */
		315,
		386,
		329,
		312,
		232,
		294,
		303,
		141,
		313,
		329,
		/*  1820 */
		71,
		135,
		206,
		344,
		37,
		362,
		329,
		329,
		329,
		315,
		/*  1830 */
		386,
		329,
		329,
		232,
		294,
		303,
		312,
		313,
		329,
		329,
		/*  1840 */
		141,
		329,
		329,
		72,
		135,
		329,
		329,
		312,
		329,
		329,
		/*  1850 */
		329,
		141,
		315,
		386,
		65,
		135,
		232,
		294,
		303,
		329,
		/*  1860 */
		313,
		329,
		329,
		315,
		386,
		329,
		329,
		232,
		294,
		303,
		/*  1870 */
		329,
		313,
		329,
		329,
		312,
		198,
		167,
		329,
		141,
		329,
		/*  1880 */
		329,
		69,
		135,
		329,
		329,
		325,
		329,
		329,
		21,
		9,
		/*  1890 */
		315,
		386,
		329,
		329,
		232,
		294,
		303,
		312,
		313,
		329,
		/*  1900 */
		329,
		141,
		206,
		329,
		85,
		135,
		329,
		312,
		329,
		329,
		/*  1910 */
		329,
		149,
		329,
		315,
		386,
		135,
		312,
		232,
		294,
		303,
		/*  1920 */
		141,
		313,
		329,
		81,
		135,
		329,
		329,
		232,
		294,
		303,
		/*  1930 */
		329,
		313,
		315,
		386,
		329,
		329,
		232,
		294,
		303,
		312,
		/*  1940 */
		313,
		329,
		329,
		141,
		329,
		329,
		82,
		135,
		329,
		329,
		/*  1950 */
		312,
		329,
		329,
		329,
		141,
		315,
		386,
		63,
		135,
		232,
		/*  1960 */
		294,
		303,
		329,
		313,
		329,
		329,
		315,
		386,
		329,
		329,
		/*  1970 */
		232,
		294,
		303,
		329,
		313,
		329,
		312,
		329,
		329,
		329,
		/*  1980 */
		141,
		329,
		329,
		73,
		135,
		329,
		329,
		312,
		329,
		329,
		/*  1990 */
		329,
		141,
		315,
		386,
		83,
		135,
		232,
		294,
		303,
		329,
		/*  2000 */
		313,
		329,
		329,
		315,
		386,
		329,
		312,
		232,
		294,
		303,
		/*  2010 */
		141,
		313,
		329,
		89,
		135,
		329,
		329,
		329,
		329,
		329,
		/*  2020 */
		329,
		329,
		315,
		386,
		329,
		312,
		232,
		294,
		303,
		111,
		/*  2030 */
		313,
		329,
		68,
		135,
		329,
		329,
		312,
		329,
		329,
		329,
		/*  2040 */
		141,
		315,
		386,
		62,
		135,
		232,
		294,
		303,
		329,
		313,
		/*  2050 */
		329,
		329,
		315,
		386,
		329,
		329,
		232,
		294,
		303,
		329,
		/*  2060 */
		313,
		329,
		312,
		329,
		329,
		329,
		141,
		329,
		329,
		61,
		/*  2070 */
		135,
		329,
		329,
		312,
		329,
		329,
		329,
		141,
		315,
		386,
		/*  2080 */
		91,
		135,
		232,
		294,
		303,
		329,
		313,
		329,
		329,
		315,
		/*  2090 */
		386,
		329,
		312,
		232,
		294,
		303,
		141,
		313,
		329,
		78,
		/*  2100 */
		135,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		315,
		386,
		/*  2110 */
		329,
		312,
		232,
		294,
		303,
		141,
		313,
		329,
		66,
		135,
		/*  2120 */
		329,
		329,
		312,
		329,
		329,
		329,
		141,
		315,
		386,
		80,
		/*  2130 */
		135,
		232,
		294,
		303,
		329,
		313,
		329,
		329,
		315,
		386,
		/*  2140 */
		329,
		329,
		232,
		294,
		303,
		329,
		313,
		329,
		312,
		329,
		/*  2150 */
		329,
		329,
		113,
		329,
		329,
		88,
		135,
		329,
		329,
		312,
		/*  2160 */
		329,
		329,
		329,
		112,
		315,
		386,
		84,
		135,
		232,
		294,
		/*  2170 */
		303,
		329,
		313,
		329,
		329,
		315,
		386,
		329,
		312,
		232,
		/*  2180 */
		294,
		303,
		141,
		313,
		329,
		57,
		135,
		329,
		329,
		329,
		/*  2190 */
		329,
		329,
		329,
		329,
		315,
		386,
		329,
		312,
		232,
		294,
		/*  2200 */
		303,
		93,
		313,
		329,
		59,
		121,
		329,
		329,
		312,
		329,
		/*  2210 */
		329,
		329,
		141,
		315,
		386,
		75,
		135,
		232,
		294,
		303,
		/*  2220 */
		329,
		313,
		329,
		329,
		315,
		386,
		329,
		329,
		232,
		294,
		/*  2230 */
		303,
		329,
		313,
		329,
		312,
		329,
		329,
		329,
		141,
		329,
		/*  2240 */
		329,
		60,
		135,
		329,
		329,
		312,
		329,
		329,
		329,
		141,
		/*  2250 */
		315,
		386,
		64,
		135,
		232,
		294,
		303,
		329,
		313,
		329,
		/*  2260 */
		329,
		315,
		386,
		329,
		312,
		232,
		294,
		303,
		120,
		313,
		/*  2270 */
		329,
		55,
		135,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		/*  2280 */
		315,
		386,
		329,
		312,
		232,
		294,
		303,
		93,
		313,
		329,
		/*  2290 */
		56,
		121,
		225,
		329,
		312,
		329,
		198,
		164,
		157,
		315,
		/*  2300 */
		386,
		329,
		135,
		219,
		294,
		303,
		325,
		313,
		352,
		21,
		/*  2310 */
		9,
		287,
		234,
		329,
		232,
		294,
		303,
		329,
		313,
		329,
		/*  2320 */
		41,
		329,
		329,
		206,
		312,
		329,
		43,
		329,
		151,
		2,
		/*  2330 */
		329,
		329,
		135,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		/*  2340 */
		198,
		168,
		329,
		329,
		232,
		294,
		303,
		329,
		313,
		329,
		/*  2350 */
		325,
		329,
		144,
		21,
		9,
		198,
		171,
		329,
		329,
		329,
		/*  2360 */
		329,
		329,
		329,
		329,
		329,
		325,
		329,
		206,
		21,
		9,
		/*  2370 */
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		329,
		/*  2380 */
		329,
		329,
		206,
	);
	static public $yy_lookahead = array(
		/*     0 */
		1,
		3,
		4,
		5,
		6,
		7,
		8,
		9,
		10,
		11,
		/*    10 */
		12,
		13,
		16,
		98,
		16,
		19,
		17,
		17,
		113,
		114,
		/*    20 */
		22,
		23,
		16,
		97,
		18,
		19,
		28,
		112,
		29,
		29,
		/*    30 */
		32,
		33,
		34,
		16,
		35,
		35,
		19,
		20,
		112,
		40,
		/*    40 */
		41,
		42,
		43,
		44,
		45,
		46,
		47,
		48,
		49,
		50,
		/*    50 */
		51,
		52,
		53,
		4,
		5,
		6,
		7,
		8,
		62,
		93,
		/*    60 */
		94,
		95,
		13,
		14,
		15,
		66,
		67,
		68,
		69,
		70,
		/*    70 */
		71,
		72,
		73,
		74,
		75,
		76,
		77,
		1,
		85,
		62,
		/*    80 */
		1,
		1,
		89,
		38,
		117,
		92,
		93,
		82,
		83,
		84,
		/*    90 */
		85,
		86,
		38,
		17,
		101,
		102,
		17,
		17,
		105,
		106,
		/*   100 */
		107,
		86,
		109,
		88,
		59,
		29,
		61,
		1,
		29,
		30,
		/*   110 */
		65,
		35,
		119,
		120,
		35,
		61,
		40,
		41,
		42,
		43,
		/*   120 */
		44,
		45,
		46,
		47,
		48,
		49,
		50,
		51,
		52,
		53,
		/*   130 */
		90,
		91,
		59,
		54,
		54,
		29,
		16,
		64,
		18,
		19,
		/*   140 */
		100,
		35,
		66,
		67,
		68,
		69,
		70,
		71,
		72,
		73,
		/*   150 */
		74,
		75,
		76,
		77,
		1,
		85,
		36,
		117,
		1,
		89,
		/*   160 */
		18,
		1,
		92,
		93,
		94,
		1,
		17,
		20,
		21,
		20,
		/*   170 */
		17,
		101,
		102,
		17,
		17,
		105,
		106,
		107,
		29,
		109,
		/*   180 */
		38,
		17,
		29,
		31,
		35,
		29,
		29,
		38,
		35,
		90,
		/*   190 */
		38,
		35,
		35,
		40,
		41,
		42,
		43,
		44,
		45,
		46,
		/*   200 */
		47,
		48,
		49,
		50,
		51,
		52,
		53,
		1,
		61,
		111,
		/*   210 */
		61,
		113,
		114,
		61,
		54,
		90,
		117,
		118,
		90,
		66,
		/*   220 */
		67,
		68,
		69,
		70,
		71,
		72,
		73,
		74,
		75,
		76,
		/*   230 */
		77,
		103,
		104,
		27,
		110,
		29,
		112,
		1,
		84,
		85,
		/*   240 */
		86,
		35,
		117,
		20,
		21,
		117,
		40,
		41,
		42,
		43,
		/*   250 */
		44,
		45,
		46,
		47,
		48,
		49,
		50,
		51,
		52,
		53,
		/*   260 */
		1,
		91,
		16,
		59,
		25,
		19,
		20,
		31,
		64,
		16,
		/*   270 */
		100,
		25,
		66,
		67,
		68,
		69,
		70,
		71,
		72,
		73,
		/*   280 */
		74,
		75,
		76,
		77,
		61,
		85,
		85,
		117,
		29,
		37,
		/*   290 */
		54,
		38,
		18,
		19,
		35,
		37,
		110,
		39,
		112,
		40,
		/*   300 */
		41,
		42,
		43,
		44,
		45,
		46,
		47,
		48,
		49,
		50,
		/*   310 */
		51,
		52,
		53,
		1,
		90,
		91,
		16,
		65,
		79,
		19,
		/*   320 */
		20,
		121,
		122,
		122,
		100,
		66,
		67,
		68,
		69,
		70,
		/*   330 */
		71,
		72,
		73,
		74,
		75,
		76,
		77,
		63,
		24,
		91,
		/*   340 */
		37,
		117,
		39,
		37,
		16,
		39,
		90,
		19,
		100,
		2,
		/*   350 */
		19,
		37,
		40,
		41,
		42,
		43,
		44,
		45,
		46,
		47,
		/*   360 */
		48,
		49,
		50,
		51,
		52,
		53,
		1,
		90,
		91,
		16,
		/*   370 */
		29,
		19,
		19,
		117,
		93,
		94,
		35,
		100,
		66,
		67,
		/*   380 */
		68,
		69,
		70,
		71,
		72,
		73,
		74,
		75,
		76,
		77,
		/*   390 */
		62,
		79,
		96,
		62,
		117,
		17,
		16,
		18,
		19,
		19,
		/*   400 */
		93,
		94,
		19,
		25,
		39,
		40,
		41,
		42,
		43,
		44,
		/*   410 */
		45,
		46,
		47,
		48,
		49,
		50,
		51,
		52,
		53,
		1,
		/*   420 */
		91,
		91,
		90,
		16,
		16,
		16,
		19,
		19,
		19,
		100,
		/*   430 */
		100,
		66,
		67,
		68,
		69,
		70,
		71,
		72,
		73,
		74,
		/*   440 */
		75,
		76,
		77,
		108,
		29,
		91,
		117,
		117,
		30,
		117,
		/*   450 */
		115,
		29,
		113,
		114,
		100,
		20,
		96,
		35,
		40,
		41,
		/*   460 */
		42,
		43,
		44,
		45,
		46,
		47,
		48,
		49,
		50,
		51,
		/*   470 */
		52,
		53,
		91,
		1,
		118,
		99,
		18,
		26,
		110,
		20,
		/*   480 */
		2,
		100,
		97,
		1,
		66,
		67,
		68,
		69,
		70,
		71,
		/*   490 */
		72,
		73,
		74,
		75,
		76,
		77,
		1,
		112,
		117,
		17,
		/*   500 */
		1,
		2,
		85,
		99,
		19,
		110,
		89,
		10,
		16,
		19,
		/*   510 */
		93,
		19,
		17,
		16,
		21,
		99,
		17,
		38,
		59,
		22,
		/*   520 */
		23,
		29,
		105,
		106,
		107,
		28,
		109,
		35,
		18,
		32,
		/*   530 */
		33,
		34,
		2,
		1,
		65,
		40,
		41,
		42,
		43,
		44,
		/*   540 */
		45,
		46,
		47,
		48,
		49,
		50,
		51,
		52,
		53,
		17,
		/*   550 */
		20,
		91,
		59,
		21,
		36,
		19,
		19,
		64,
		19,
		25,
		/*   560 */
		100,
		66,
		67,
		68,
		69,
		70,
		71,
		72,
		73,
		74,
		/*   570 */
		75,
		76,
		77,
		1,
		85,
		78,
		79,
		80,
		89,
		85,
		/*   580 */
		19,
		92,
		93,
		89,
		59,
		63,
		21,
		93,
		19,
		17,
		/*   590 */
		101,
		102,
		17,
		1,
		105,
		106,
		107,
		18,
		109,
		105,
		/*   600 */
		106,
		107,
		18,
		109,
		29,
		116,
		36,
		63,
		19,
		17,
		/*   610 */
		35,
		1,
		40,
		41,
		42,
		43,
		44,
		45,
		46,
		47,
		/*   620 */
		48,
		49,
		50,
		51,
		52,
		53,
		61,
		17,
		108,
		38,
		/*   630 */
		2,
		19,
		39,
		55,
		21,
		115,
		18,
		97,
		66,
		67,
		/*   640 */
		68,
		69,
		70,
		71,
		72,
		73,
		74,
		75,
		76,
		77,
		/*   650 */
		1,
		85,
		112,
		1,
		100,
		89,
		85,
		115,
		92,
		93,
		/*   660 */
		89,
		110,
		112,
		111,
		93,
		91,
		17,
		101,
		102,
		17,
		/*   670 */
		97,
		105,
		106,
		107,
		100,
		109,
		105,
		106,
		107,
		14,
		/*   680 */
		109,
		29,
		116,
		87,
		123,
		112,
		112,
		35,
		123,
		40,
		/*   690 */
		41,
		42,
		43,
		44,
		45,
		46,
		47,
		48,
		49,
		50,
		/*   700 */
		51,
		52,
		53,
		1,
		2,
		110,
		54,
		110,
		114,
		110,
		/*   710 */
		123,
		123,
		97,
		97,
		97,
		66,
		67,
		68,
		69,
		70,
		/*   720 */
		71,
		72,
		73,
		74,
		75,
		76,
		77,
		112,
		112,
		112,
		/*   730 */
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		/*   740 */
		123,
		123,
		40,
		41,
		42,
		43,
		44,
		45,
		46,
		47,
		/*   750 */
		48,
		49,
		50,
		51,
		52,
		53,
		1,
		123,
		123,
		123,
		/*   760 */
		123,
		123,
		123,
		123,
		123,
		97,
		97,
		97,
		66,
		67,
		/*   770 */
		68,
		69,
		70,
		71,
		72,
		73,
		74,
		75,
		76,
		77,
		/*   780 */
		112,
		112,
		112,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		/*   790 */
		123,
		123,
		123,
		123,
		39,
		40,
		41,
		42,
		43,
		44,
		/*   800 */
		45,
		46,
		47,
		48,
		49,
		50,
		51,
		52,
		53,
		123,
		/*   810 */
		1,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		/*   820 */
		123,
		66,
		67,
		68,
		69,
		70,
		71,
		72,
		73,
		74,
		/*   830 */
		75,
		76,
		77,
		24,
		123,
		123,
		123,
		123,
		123,
		123,
		/*   840 */
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		40,
		/*   850 */
		41,
		42,
		43,
		44,
		45,
		46,
		47,
		48,
		49,
		50,
		/*   860 */
		51,
		52,
		53,
		1,
		123,
		123,
		123,
		123,
		123,
		123,
		/*   870 */
		123,
		123,
		123,
		123,
		123,
		66,
		67,
		68,
		69,
		70,
		/*   880 */
		71,
		72,
		73,
		74,
		75,
		76,
		77,
		123,
		123,
		123,
		/*   890 */
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		/*   900 */
		123,
		123,
		40,
		41,
		42,
		43,
		44,
		45,
		46,
		47,
		/*   910 */
		48,
		49,
		50,
		51,
		52,
		53,
		123,
		123,
		123,
		123,
		/*   920 */
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		65,
		66,
		67,
		/*   930 */
		68,
		69,
		70,
		71,
		72,
		73,
		74,
		75,
		76,
		77,
		/*   940 */
		1,
		85,
		123,
		1,
		123,
		89,
		85,
		123,
		92,
		93,
		/*   950 */
		89,
		123,
		123,
		123,
		93,
		91,
		17,
		101,
		102,
		17,
		/*   960 */
		123,
		105,
		106,
		107,
		100,
		109,
		105,
		106,
		107,
		123,
		/*   970 */
		109,
		29,
		116,
		123,
		123,
		123,
		112,
		35,
		123,
		40,
		/*   980 */
		41,
		42,
		43,
		44,
		45,
		46,
		47,
		48,
		49,
		50,
		/*   990 */
		51,
		52,
		53,
		1,
		123,
		123,
		54,
		123,
		123,
		123,
		/*  1000 */
		123,
		123,
		123,
		123,
		123,
		66,
		67,
		68,
		69,
		70,
		/*  1010 */
		71,
		72,
		73,
		74,
		75,
		76,
		77,
		123,
		123,
		123,
		/*  1020 */
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		/*  1030 */
		123,
		123,
		40,
		41,
		42,
		43,
		44,
		45,
		46,
		47,
		/*  1040 */
		48,
		49,
		50,
		51,
		52,
		53,
		123,
		123,
		123,
		123,
		/*  1050 */
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		66,
		67,
		/*  1060 */
		68,
		69,
		70,
		71,
		72,
		73,
		74,
		75,
		76,
		77,
		/*  1070 */
		123,
		123,
		123,
		40,
		41,
		42,
		43,
		44,
		45,
		46,
		/*  1080 */
		47,
		48,
		49,
		50,
		51,
		52,
		53,
		123,
		123,
		123,
		/*  1090 */
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		66,
		/*  1100 */
		67,
		68,
		69,
		70,
		71,
		72,
		73,
		74,
		75,
		76,
		/*  1110 */
		77,
		123,
		123,
		123,
		123,
		123,
		16,
		123,
		18,
		19,
		/*  1120 */
		123,
		123,
		22,
		23,
		123,
		17,
		123,
		85,
		28,
		123,
		/*  1130 */
		123,
		89,
		32,
		33,
		34,
		93,
		36,
		29,
		38,
		123,
		/*  1140 */
		123,
		41,
		123,
		35,
		102,
		123,
		85,
		105,
		106,
		107,
		/*  1150 */
		89,
		109,
		123,
		91,
		93,
		123,
		56,
		57,
		58,
		59,
		/*  1160 */
		60,
		123,
		100,
		63,
		64,
		65,
		105,
		106,
		107,
		123,
		/*  1170 */
		109,
		93,
		123,
		16,
		112,
		18,
		19,
		123,
		78,
		22,
		/*  1180 */
		23,
		16,
		123,
		105,
		19,
		28,
		123,
		109,
		123,
		32,
		/*  1190 */
		33,
		34,
		123,
		36,
		29,
		38,
		31,
		123,
		41,
		123,
		/*  1200 */
		35,
		123,
		85,
		123,
		123,
		123,
		89,
		123,
		123,
		92,
		/*  1210 */
		93,
		94,
		123,
		56,
		57,
		58,
		59,
		60,
		101,
		102,
		/*  1220 */
		63,
		64,
		105,
		106,
		107,
		123,
		109,
		17,
		123,
		123,
		/*  1230 */
		16,
		123,
		18,
		19,
		123,
		78,
		22,
		23,
		16,
		29,
		/*  1240 */
		91,
		19,
		28,
		123,
		17,
		35,
		32,
		33,
		34,
		100,
		/*  1250 */
		36,
		29,
		38,
		31,
		123,
		41,
		29,
		35,
		123,
		85,
		/*  1260 */
		123,
		112,
		35,
		89,
		123,
		123,
		92,
		93,
		1,
		123,
		/*  1270 */
		56,
		57,
		58,
		59,
		60,
		101,
		102,
		63,
		64,
		105,
		/*  1280 */
		106,
		107,
		123,
		109,
		17,
		123,
		123,
		16,
		123,
		18,
		/*  1290 */
		19,
		123,
		78,
		22,
		23,
		123,
		29,
		123,
		123,
		28,
		/*  1300 */
		123,
		17,
		35,
		32,
		33,
		34,
		123,
		36,
		123,
		38,
		/*  1310 */
		123,
		123,
		41,
		29,
		123,
		123,
		85,
		123,
		123,
		35,
		/*  1320 */
		89,
		54,
		123,
		92,
		93,
		123,
		123,
		56,
		57,
		58,
		/*  1330 */
		59,
		60,
		101,
		102,
		63,
		64,
		105,
		106,
		107,
		123,
		/*  1340 */
		109,
		17,
		123,
		123,
		16,
		123,
		18,
		19,
		123,
		78,
		/*  1350 */
		22,
		23,
		123,
		29,
		123,
		123,
		28,
		123,
		17,
		35,
		/*  1360 */
		32,
		33,
		34,
		123,
		36,
		123,
		38,
		123,
		123,
		41,
		/*  1370 */
		29,
		123,
		123,
		85,
		123,
		123,
		35,
		89,
		123,
		123,
		/*  1380 */
		92,
		93,
		123,
		123,
		56,
		57,
		58,
		59,
		60,
		101,
		/*  1390 */
		102,
		63,
		64,
		105,
		106,
		107,
		123,
		109,
		17,
		123,
		/*  1400 */
		123,
		16,
		123,
		18,
		19,
		123,
		78,
		22,
		23,
		123,
		/*  1410 */
		29,
		123,
		123,
		28,
		123,
		17,
		35,
		32,
		33,
		34,
		/*  1420 */
		123,
		36,
		123,
		38,
		123,
		123,
		41,
		29,
		123,
		123,
		/*  1430 */
		85,
		123,
		123,
		35,
		89,
		123,
		123,
		92,
		93,
		123,
		/*  1440 */
		123,
		56,
		57,
		58,
		59,
		60,
		101,
		102,
		63,
		64,
		/*  1450 */
		105,
		106,
		107,
		123,
		109,
		17,
		123,
		123,
		16,
		123,
		/*  1460 */
		18,
		19,
		123,
		78,
		22,
		23,
		123,
		29,
		123,
		123,
		/*  1470 */
		28,
		123,
		17,
		35,
		32,
		33,
		34,
		123,
		36,
		123,
		/*  1480 */
		38,
		123,
		123,
		41,
		29,
		123,
		123,
		85,
		123,
		123,
		/*  1490 */
		35,
		89,
		123,
		123,
		92,
		93,
		123,
		123,
		56,
		57,
		/*  1500 */
		58,
		59,
		60,
		101,
		102,
		63,
		64,
		105,
		106,
		107,
		/*  1510 */
		123,
		109,
		17,
		123,
		123,
		16,
		123,
		18,
		19,
		123,
		/*  1520 */
		78,
		22,
		23,
		123,
		29,
		123,
		123,
		28,
		123,
		17,
		/*  1530 */
		35,
		32,
		33,
		34,
		123,
		36,
		123,
		38,
		123,
		123,
		/*  1540 */
		41,
		29,
		123,
		123,
		85,
		123,
		123,
		35,
		89,
		123,
		/*  1550 */
		123,
		92,
		93,
		123,
		123,
		56,
		57,
		58,
		59,
		60,
		/*  1560 */
		101,
		102,
		63,
		64,
		105,
		106,
		107,
		123,
		109,
		17,
		/*  1570 */
		123,
		123,
		16,
		123,
		18,
		19,
		123,
		78,
		22,
		23,
		/*  1580 */
		123,
		29,
		123,
		123,
		28,
		123,
		17,
		35,
		32,
		33,
		/*  1590 */
		34,
		123,
		36,
		123,
		38,
		123,
		123,
		41,
		29,
		123,
		/*  1600 */
		123,
		85,
		123,
		123,
		35,
		89,
		123,
		123,
		92,
		93,
		/*  1610 */
		123,
		123,
		56,
		57,
		58,
		59,
		60,
		101,
		102,
		63,
		/*  1620 */
		64,
		105,
		106,
		107,
		123,
		109,
		17,
		123,
		123,
		16,
		/*  1630 */
		123,
		18,
		19,
		123,
		78,
		22,
		23,
		123,
		29,
		123,
		/*  1640 */
		123,
		28,
		123,
		17,
		35,
		32,
		33,
		34,
		123,
		36,
		/*  1650 */
		123,
		38,
		123,
		123,
		41,
		29,
		123,
		123,
		85,
		123,
		/*  1660 */
		123,
		35,
		89,
		123,
		123,
		92,
		93,
		123,
		123,
		56,
		/*  1670 */
		57,
		58,
		59,
		60,
		101,
		102,
		63,
		123,
		105,
		106,
		/*  1680 */
		107,
		123,
		109,
		17,
		123,
		123,
		16,
		123,
		18,
		19,
		/*  1690 */
		123,
		78,
		22,
		23,
		123,
		29,
		123,
		123,
		28,
		123,
		/*  1700 */
		17,
		35,
		32,
		33,
		34,
		123,
		36,
		123,
		38,
		123,
		/*  1710 */
		123,
		41,
		29,
		123,
		123,
		85,
		123,
		123,
		35,
		89,
		/*  1720 */
		123,
		123,
		92,
		93,
		123,
		123,
		56,
		57,
		58,
		59,
		/*  1730 */
		60,
		101,
		102,
		63,
		123,
		105,
		106,
		107,
		123,
		109,
		/*  1740 */
		123,
		123,
		123,
		123,
		17,
		123,
		123,
		123,
		78,
		123,
		/*  1750 */
		120,
		24,
		123,
		26,
		27,
		10,
		29,
		30,
		123,
		123,
		/*  1760 */
		123,
		16,
		35,
		123,
		37,
		38,
		39,
		22,
		23,
		123,
		/*  1770 */
		90,
		91,
		123,
		28,
		123,
		123,
		123,
		32,
		33,
		34,
		/*  1780 */
		100,
		54,
		123,
		103,
		104,
		123,
		123,
		123,
		61,
		123,
		/*  1790 */
		123,
		123,
		65,
		123,
		85,
		90,
		91,
		117,
		89,
		123,
		/*  1800 */
		123,
		92,
		93,
		123,
		123,
		100,
		79,
		123,
		103,
		104,
		/*  1810 */
		101,
		102,
		123,
		85,
		105,
		106,
		107,
		89,
		109,
		123,
		/*  1820 */
		92,
		93,
		117,
		78,
		79,
		80,
		123,
		123,
		123,
		101,
		/*  1830 */
		102,
		123,
		123,
		105,
		106,
		107,
		85,
		109,
		123,
		123,
		/*  1840 */
		89,
		123,
		123,
		92,
		93,
		123,
		123,
		85,
		123,
		123,
		/*  1850 */
		123,
		89,
		101,
		102,
		92,
		93,
		105,
		106,
		107,
		123,
		/*  1860 */
		109,
		123,
		123,
		101,
		102,
		123,
		123,
		105,
		106,
		107,
		/*  1870 */
		123,
		109,
		123,
		123,
		85,
		90,
		91,
		123,
		89,
		123,
		/*  1880 */
		123,
		92,
		93,
		123,
		123,
		100,
		123,
		123,
		103,
		104,
		/*  1890 */
		101,
		102,
		123,
		123,
		105,
		106,
		107,
		85,
		109,
		123,
		/*  1900 */
		123,
		89,
		117,
		123,
		92,
		93,
		123,
		85,
		123,
		123,
		/*  1910 */
		123,
		89,
		123,
		101,
		102,
		93,
		85,
		105,
		106,
		107,
		/*  1920 */
		89,
		109,
		123,
		92,
		93,
		123,
		123,
		105,
		106,
		107,
		/*  1930 */
		123,
		109,
		101,
		102,
		123,
		123,
		105,
		106,
		107,
		85,
		/*  1940 */
		109,
		123,
		123,
		89,
		123,
		123,
		92,
		93,
		123,
		123,
		/*  1950 */
		85,
		123,
		123,
		123,
		89,
		101,
		102,
		92,
		93,
		105,
		/*  1960 */
		106,
		107,
		123,
		109,
		123,
		123,
		101,
		102,
		123,
		123,
		/*  1970 */
		105,
		106,
		107,
		123,
		109,
		123,
		85,
		123,
		123,
		123,
		/*  1980 */
		89,
		123,
		123,
		92,
		93,
		123,
		123,
		85,
		123,
		123,
		/*  1990 */
		123,
		89,
		101,
		102,
		92,
		93,
		105,
		106,
		107,
		123,
		/*  2000 */
		109,
		123,
		123,
		101,
		102,
		123,
		85,
		105,
		106,
		107,
		/*  2010 */
		89,
		109,
		123,
		92,
		93,
		123,
		123,
		123,
		123,
		123,
		/*  2020 */
		123,
		123,
		101,
		102,
		123,
		85,
		105,
		106,
		107,
		89,
		/*  2030 */
		109,
		123,
		92,
		93,
		123,
		123,
		85,
		123,
		123,
		123,
		/*  2040 */
		89,
		101,
		102,
		92,
		93,
		105,
		106,
		107,
		123,
		109,
		/*  2050 */
		123,
		123,
		101,
		102,
		123,
		123,
		105,
		106,
		107,
		123,
		/*  2060 */
		109,
		123,
		85,
		123,
		123,
		123,
		89,
		123,
		123,
		92,
		/*  2070 */
		93,
		123,
		123,
		85,
		123,
		123,
		123,
		89,
		101,
		102,
		/*  2080 */
		92,
		93,
		105,
		106,
		107,
		123,
		109,
		123,
		123,
		101,
		/*  2090 */
		102,
		123,
		85,
		105,
		106,
		107,
		89,
		109,
		123,
		92,
		/*  2100 */
		93,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		101,
		102,
		/*  2110 */
		123,
		85,
		105,
		106,
		107,
		89,
		109,
		123,
		92,
		93,
		/*  2120 */
		123,
		123,
		85,
		123,
		123,
		123,
		89,
		101,
		102,
		92,
		/*  2130 */
		93,
		105,
		106,
		107,
		123,
		109,
		123,
		123,
		101,
		102,
		/*  2140 */
		123,
		123,
		105,
		106,
		107,
		123,
		109,
		123,
		85,
		123,
		/*  2150 */
		123,
		123,
		89,
		123,
		123,
		92,
		93,
		123,
		123,
		85,
		/*  2160 */
		123,
		123,
		123,
		89,
		101,
		102,
		92,
		93,
		105,
		106,
		/*  2170 */
		107,
		123,
		109,
		123,
		123,
		101,
		102,
		123,
		85,
		105,
		/*  2180 */
		106,
		107,
		89,
		109,
		123,
		92,
		93,
		123,
		123,
		123,
		/*  2190 */
		123,
		123,
		123,
		123,
		101,
		102,
		123,
		85,
		105,
		106,
		/*  2200 */
		107,
		89,
		109,
		123,
		92,
		93,
		123,
		123,
		85,
		123,
		/*  2210 */
		123,
		123,
		89,
		101,
		102,
		92,
		93,
		105,
		106,
		107,
		/*  2220 */
		123,
		109,
		123,
		123,
		101,
		102,
		123,
		123,
		105,
		106,
		/*  2230 */
		107,
		123,
		109,
		123,
		85,
		123,
		123,
		123,
		89,
		123,
		/*  2240 */
		123,
		92,
		93,
		123,
		123,
		85,
		123,
		123,
		123,
		89,
		/*  2250 */
		101,
		102,
		92,
		93,
		105,
		106,
		107,
		123,
		109,
		123,
		/*  2260 */
		123,
		101,
		102,
		123,
		85,
		105,
		106,
		107,
		89,
		109,
		/*  2270 */
		123,
		92,
		93,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		/*  2280 */
		101,
		102,
		123,
		85,
		105,
		106,
		107,
		89,
		109,
		123,
		/*  2290 */
		92,
		93,
		1,
		123,
		85,
		123,
		90,
		91,
		89,
		101,
		/*  2300 */
		102,
		123,
		93,
		105,
		106,
		107,
		100,
		109,
		17,
		103,
		/*  2310 */
		104,
		102,
		21,
		123,
		105,
		106,
		107,
		123,
		109,
		123,
		/*  2320 */
		29,
		123,
		123,
		117,
		85,
		123,
		35,
		123,
		89,
		38,
		/*  2330 */
		123,
		123,
		93,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		/*  2340 */
		90,
		91,
		123,
		123,
		105,
		106,
		107,
		123,
		109,
		123,
		/*  2350 */
		100,
		123,
		61,
		103,
		104,
		90,
		91,
		123,
		123,
		123,
		/*  2360 */
		123,
		123,
		123,
		123,
		123,
		100,
		123,
		117,
		103,
		104,
		/*  2370 */
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		123,
		/*  2380 */
		123,
		123,
		117,
	);
	const YY_SHIFT_USE_DFLT = -5;
	const YY_SHIFT_MAX = 256;
	static public $yy_shift_ofst = array(
		/*     0 */
		-2,
		1271,
		1157,
		1157,
		1271,
		1157,
		1328,
		1328,
		1100,
		1157,
		/*    10 */
		1157,
		1157,
		1157,
		1157,
		1157,
		1157,
		1499,
		1157,
		1157,
		1157,
		/*    20 */
		1157,
		1157,
		1556,
		1157,
		1157,
		1157,
		1157,
		1157,
		1157,
		1157,
		/*    30 */
		1157,
		1157,
		1157,
		1157,
		1385,
		1214,
		1157,
		1157,
		1157,
		1157,
		/*    40 */
		1157,
		1499,
		1214,
		1157,
		1442,
		1442,
		1613,
		1670,
		1670,
		1670,
		/*    50 */
		1670,
		1670,
		1670,
		206,
		153,
		76,
		-1,
		259,
		259,
		259,
		/*    60 */
		809,
		939,
		755,
		862,
		702,
		649,
		365,
		312,
		418,
		495,
		/*    70 */
		572,
		992,
		992,
		992,
		992,
		992,
		992,
		992,
		992,
		992,
		/*    80 */
		992,
		992,
		992,
		992,
		992,
		992,
		992,
		992,
		992,
		992,
		/*    90 */
		1033,
		1033,
		2291,
		1267,
		106,
		-2,
		1745,
		1222,
		1165,
		157,
		/*   100 */
		157,
		492,
		492,
		499,
		106,
		106,
		274,
		493,
		142,
		497,
		/*   110 */
		49,
		79,
		942,
		652,
		246,
		17,
		328,
		300,
		236,
		223,
		/*   120 */
		80,
		147,
		532,
		1227,
		353,
		353,
		353,
		422,
		407,
		142,
		/*   130 */
		353,
		353,
		610,
		353,
		341,
		565,
		379,
		353,
		380,
		142,
		/*   140 */
		408,
		160,
		409,
		353,
		379,
		409,
		353,
		472,
		613,
		472,
		/*   150 */
		472,
		472,
		472,
		472,
		472,
		613,
		472,
		-5,
		1284,
		1210,
		/*   160 */
		-4,
		1108,
		0,
		156,
		575,
		1683,
		1552,
		1512,
		1569,
		1609,
		/*   170 */
		1666,
		1324,
		1626,
		6,
		1495,
		1398,
		1381,
		1341,
		1438,
		1455,
		/*   180 */
		73,
		482,
		73,
		204,
		592,
		204,
		204,
		204,
		164,
		204,
		/*   190 */
		253,
		204,
		204,
		665,
		613,
		613,
		613,
		479,
		472,
		347,
		/*   200 */
		415,
		415,
		472,
		347,
		-5,
		-5,
		-5,
		-5,
		-5,
		1727,
		/*   210 */
		149,
		45,
		120,
		152,
		54,
		530,
		54,
		314,
		252,
		378,
		/*   220 */
		306,
		459,
		258,
		303,
		239,
		331,
		522,
		536,
		469,
		537,
		/*   230 */
		539,
		569,
		534,
		544,
		561,
		525,
		518,
		570,
		593,
		612,
		/*   240 */
		578,
		628,
		591,
		579,
		510,
		584,
		589,
		458,
		435,
		352,
		/*   250 */
		485,
		478,
		451,
		479,
		490,
		383,
		618,
	);
	const YY_REDUCE_USE_DFLT = -96;
	const YY_REDUCE_MAX = 208;
	static public $yy_reduce_ofst = array(
		/*     0 */
		5,
		-7,
		489,
		566,
		1630,
		856,
		70,
		1117,
		1865,
		1854,
		/*    10 */
		1831,
		1812,
		1891,
		1902,
		1977,
		1951,
		1940,
		1921,
		1789,
		1762,
		/*    20 */
		1402,
		1345,
		1288,
		1231,
		1459,
		1516,
		1751,
		1728,
		1709,
		1573,
		/*    30 */
		1988,
		2007,
		2123,
		2149,
		2160,
		2198,
		2179,
		1174,
		2093,
		2026,
		/*    40 */
		2037,
		2063,
		2112,
		2074,
		1042,
		2209,
		1822,
		2239,
		1061,
		861,
		/*    50 */
		494,
		417,
		571,
		2265,
		2250,
		2206,
		1705,
		1785,
		1680,
		1705,
		/*    60 */
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		/*    70 */
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		/*    80 */
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		128,
		/*    90 */
		128,
		128,
		277,
		224,
		40,
		154,
		200,
		864,
		1062,
		170,
		/*   100 */
		330,
		574,
		1149,
		99,
		329,
		381,
		1078,
		98,
		-34,
		201,
		/*   110 */
		15,
		125,
		125,
		125,
		-85,
		124,
		124,
		124,
		125,
		-95,
		/*   120 */
		125,
		-95,
		332,
		354,
		573,
		616,
		617,
		460,
		615,
		307,
		/*   130 */
		385,
		540,
		256,
		-74,
		248,
		-95,
		335,
		668,
		540,
		281,
		/*   140 */
		540,
		125,
		670,
		669,
		520,
		540,
		186,
		125,
		339,
		125,
		/*   150 */
		125,
		125,
		125,
		125,
		125,
		-95,
		125,
		125,
		554,
		554,
		/*   160 */
		550,
		554,
		554,
		554,
		554,
		554,
		554,
		554,
		554,
		554,
		/*   170 */
		554,
		554,
		554,
		542,
		554,
		554,
		554,
		554,
		554,
		554,
		/*   180 */
		595,
		-33,
		551,
		552,
		-33,
		552,
		552,
		552,
		-33,
		552,
		/*   190 */
		597,
		552,
		552,
		596,
		594,
		594,
		594,
		599,
		-33,
		356,
		/*   200 */
		296,
		360,
		-33,
		356,
		395,
		404,
		376,
		416,
		368,
	);
	static public $yyExpectedTokens = array(
		/* 0 */
		array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 22, 23, 28, 32, 33, 34,),
		/* 1 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 2 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 3 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 4 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 5 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 6 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 7 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 8 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 65, 78,),
		/* 9 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 10 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 11 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 12 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 13 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 14 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 15 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 16 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 17 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 18 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 19 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 20 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 21 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 22 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 23 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 24 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 25 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 26 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 27 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 28 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 29 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 30 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 31 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 32 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 33 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 34 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 35 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 36 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 37 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 38 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 39 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 40 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 41 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 42 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 43 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 44 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 45 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 64, 78,),
		/* 46 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78,),
		/* 47 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78,),
		/* 48 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78,),
		/* 49 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78,),
		/* 50 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78,),
		/* 51 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78,),
		/* 52 */
		array(16, 18, 19, 22, 23, 28, 32, 33, 34, 36, 38, 41, 56, 57, 58, 59, 60, 63, 78,),
		/* 53 */
		array(1, 27, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 54 */
		array(1, 17, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 55 */
		array(1, 17, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 56 */
		array(1, 17, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 57 */
		array(1, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 58 */
		array(1, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 59 */
		array(1, 29, 35, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 60 */
		array(1, 24, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 61 */
		array(1, 17, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 62 */
		array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 63 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 64 */
		array(1, 2, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 65 */
		array(1, 17, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 66 */
		array(1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 67 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79,),
		/* 68 */
		array(1, 30, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 69 */
		array(1, 17, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 70 */
		array(1, 17, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 71 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 72 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 73 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 74 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 75 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 76 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 77 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 78 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 79 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 80 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 81 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 82 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 83 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 84 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 85 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 86 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 87 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 88 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 89 */
		array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 90 */
		array(40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 91 */
		array(40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,),
		/* 92 */
		array(1, 17, 21, 29, 35, 38, 61,),
		/* 93 */
		array(1, 17, 29, 35, 54,),
		/* 94 */
		array(1, 29, 35,),
		/* 95 */
		array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 22, 23, 28, 32, 33, 34,),
		/* 96 */
		array(10, 16, 22, 23, 28, 32, 33, 34, 78, 79, 80,),
		/* 97 */
		array(16, 19, 29, 31, 35,),
		/* 98 */
		array(16, 19, 29, 31, 35,),
		/* 99 */
		array(1, 17, 29, 35,),
		/* 100 */
		array(1, 17, 29, 35,),
		/* 101 */
		array(16, 19, 29, 35,),
		/* 102 */
		array(16, 19, 29, 35,),
		/* 103 */
		array(1, 2, 17,),
		/* 104 */
		array(1, 29, 35,),
		/* 105 */
		array(1, 29, 35,),
		/* 106 */
		array(18, 19, 63,),
		/* 107 */
		array(21, 59, 64,),
		/* 108 */
		array(18, 38,),
		/* 109 */
		array(10, 16, 22, 23, 28, 32, 33, 34, 78, 79, 80,),
		/* 110 */
		array(4, 5, 6, 7, 8, 13, 14, 15,),
		/* 111 */
		array(1, 17, 29, 30, 35, 54,),
		/* 112 */
		array(1, 17, 29, 35, 54,),
		/* 113 */
		array(1, 17, 29, 35, 54,),
		/* 114 */
		array(16, 19, 20, 25,),
		/* 115 */
		array(16, 19, 20, 62,),
		/* 116 */
		array(16, 19, 62,),
		/* 117 */
		array(16, 19, 20,),
		/* 118 */
		array(1, 31, 54,),
		/* 119 */
		array(20, 21, 61,),
		/* 120 */
		array(1, 17, 54,),
		/* 121 */
		array(20, 21, 61,),
		/* 122 */
		array(1, 17, 21,),
		/* 123 */
		array(17, 29, 35,),
		/* 124 */
		array(16, 19,),
		/* 125 */
		array(16, 19,),
		/* 126 */
		array(16, 19,),
		/* 127 */
		array(29, 35,),
		/* 128 */
		array(16, 19,),
		/* 129 */
		array(18, 38,),
		/* 130 */
		array(16, 19,),
		/* 131 */
		array(16, 19,),
		/* 132 */
		array(1, 17,),
		/* 133 */
		array(16, 19,),
		/* 134 */
		array(29, 35,),
		/* 135 */
		array(21, 61,),
		/* 136 */
		array(18, 19,),
		/* 137 */
		array(16, 19,),
		/* 138 */
		array(16, 19,),
		/* 139 */
		array(18, 38,),
		/* 140 */
		array(16, 19,),
		/* 141 */
		array(1, 54,),
		/* 142 */
		array(16, 19,),
		/* 143 */
		array(16, 19,),
		/* 144 */
		array(18, 19,),
		/* 145 */
		array(16, 19,),
		/* 146 */
		array(16, 19,),
		/* 147 */
		array(1,),
		/* 148 */
		array(21,),
		/* 149 */
		array(1,),
		/* 150 */
		array(1,),
		/* 151 */
		array(1,),
		/* 152 */
		array(1,),
		/* 153 */
		array(1,),
		/* 154 */
		array(1,),
		/* 155 */
		array(21,),
		/* 156 */
		array(1,),
		/* 157 */
		array(),
		/* 158 */
		array(17, 29, 35,),
		/* 159 */
		array(17, 29, 35,),
		/* 160 */
		array(16, 19, 62,),
		/* 161 */
		array(17, 29, 35,),
		/* 162 */
		array(17, 29, 35,),
		/* 163 */
		array(17, 29, 35,),
		/* 164 */
		array(17, 29, 35,),
		/* 165 */
		array(17, 29, 35,),
		/* 166 */
		array(17, 29, 35,),
		/* 167 */
		array(17, 29, 35,),
		/* 168 */
		array(17, 29, 35,),
		/* 169 */
		array(17, 29, 35,),
		/* 170 */
		array(17, 29, 35,),
		/* 171 */
		array(17, 29, 35,),
		/* 172 */
		array(17, 29, 35,),
		/* 173 */
		array(16, 18, 19,),
		/* 174 */
		array(17, 29, 35,),
		/* 175 */
		array(17, 29, 35,),
		/* 176 */
		array(17, 29, 35,),
		/* 177 */
		array(17, 29, 35,),
		/* 178 */
		array(17, 29, 35,),
		/* 179 */
		array(17, 29, 35,),
		/* 180 */
		array(59, 64,),
		/* 181 */
		array(1, 17,),
		/* 182 */
		array(59, 64,),
		/* 183 */
		array(59, 64,),
		/* 184 */
		array(1, 17,),
		/* 185 */
		array(59, 64,),
		/* 186 */
		array(59, 64,),
		/* 187 */
		array(59, 64,),
		/* 188 */
		array(1, 17,),
		/* 189 */
		array(59, 64,),
		/* 190 */
		array(16, 38,),
		/* 191 */
		array(59, 64,),
		/* 192 */
		array(59, 64,),
		/* 193 */
		array(14,),
		/* 194 */
		array(21,),
		/* 195 */
		array(21,),
		/* 196 */
		array(21,),
		/* 197 */
		array(38,),
		/* 198 */
		array(1,),
		/* 199 */
		array(2,),
		/* 200 */
		array(29,),
		/* 201 */
		array(29,),
		/* 202 */
		array(1,),
		/* 203 */
		array(2,),
		/* 204 */
		array(),
		/* 205 */
		array(),
		/* 206 */
		array(),
		/* 207 */
		array(),
		/* 208 */
		array(),
		/* 209 */
		array(17, 24, 26, 27, 29, 30, 35, 37, 38, 39, 54, 61, 65, 79,),
		/* 210 */
		array(17, 20, 29, 35, 38, 61,),
		/* 211 */
		array(38, 59, 61, 65,),
		/* 212 */
		array(16, 18, 19, 36,),
		/* 213 */
		array(31, 38, 61,),
		/* 214 */
		array(38, 61,),
		/* 215 */
		array(2, 20,),
		/* 216 */
		array(38, 61,),
		/* 217 */
		array(24, 37,),
		/* 218 */
		array(37, 65,),
		/* 219 */
		array(17, 25,),
		/* 220 */
		array(37, 39,),
		/* 221 */
		array(20, 59,),
		/* 222 */
		array(37, 39,),
		/* 223 */
		array(37, 39,),
		/* 224 */
		array(25, 79,),
		/* 225 */
		array(19, 62,),
		/* 226 */
		array(63,),
		/* 227 */
		array(19,),
		/* 228 */
		array(65,),
		/* 229 */
		array(19,),
		/* 230 */
		array(19,),
		/* 231 */
		array(19,),
		/* 232 */
		array(25,),
		/* 233 */
		array(63,),
		/* 234 */
		array(19,),
		/* 235 */
		array(59,),
		/* 236 */
		array(36,),
		/* 237 */
		array(36,),
		/* 238 */
		array(39,),
		/* 239 */
		array(19,),
		/* 240 */
		array(55,),
		/* 241 */
		array(2,),
		/* 242 */
		array(38,),
		/* 243 */
		array(18,),
		/* 244 */
		array(18,),
		/* 245 */
		array(18,),
		/* 246 */
		array(19,),
		/* 247 */
		array(18,),
		/* 248 */
		array(20,),
		/* 249 */
		array(19,),
		/* 250 */
		array(19,),
		/* 251 */
		array(2,),
		/* 252 */
		array(26,),
		/* 253 */
		array(38,),
		/* 254 */
		array(19,),
		/* 255 */
		array(19,),
		/* 256 */
		array(18,),
		/* 257 */
		array(),
		/* 258 */
		array(),
		/* 259 */
		array(),
		/* 260 */
		array(),
		/* 261 */
		array(),
		/* 262 */
		array(),
		/* 263 */
		array(),
		/* 264 */
		array(),
		/* 265 */
		array(),
		/* 266 */
		array(),
		/* 267 */
		array(),
		/* 268 */
		array(),
		/* 269 */
		array(),
		/* 270 */
		array(),
		/* 271 */
		array(),
		/* 272 */
		array(),
		/* 273 */
		array(),
		/* 274 */
		array(),
		/* 275 */
		array(),
		/* 276 */
		array(),
		/* 277 */
		array(),
		/* 278 */
		array(),
		/* 279 */
		array(),
		/* 280 */
		array(),
		/* 281 */
		array(),
		/* 282 */
		array(),
		/* 283 */
		array(),
		/* 284 */
		array(),
		/* 285 */
		array(),
		/* 286 */
		array(),
		/* 287 */
		array(),
		/* 288 */
		array(),
		/* 289 */
		array(),
		/* 290 */
		array(),
		/* 291 */
		array(),
		/* 292 */
		array(),
		/* 293 */
		array(),
		/* 294 */
		array(),
		/* 295 */
		array(),
		/* 296 */
		array(),
		/* 297 */
		array(),
		/* 298 */
		array(),
		/* 299 */
		array(),
		/* 300 */
		array(),
		/* 301 */
		array(),
		/* 302 */
		array(),
		/* 303 */
		array(),
		/* 304 */
		array(),
		/* 305 */
		array(),
		/* 306 */
		array(),
		/* 307 */
		array(),
		/* 308 */
		array(),
		/* 309 */
		array(),
		/* 310 */
		array(),
		/* 311 */
		array(),
		/* 312 */
		array(),
		/* 313 */
		array(),
		/* 314 */
		array(),
		/* 315 */
		array(),
		/* 316 */
		array(),
		/* 317 */
		array(),
		/* 318 */
		array(),
		/* 319 */
		array(),
		/* 320 */
		array(),
		/* 321 */
		array(),
		/* 322 */
		array(),
		/* 323 */
		array(),
		/* 324 */
		array(),
		/* 325 */
		array(),
		/* 326 */
		array(),
		/* 327 */
		array(),
		/* 328 */
		array(),
		/* 329 */
		array(),
		/* 330 */
		array(),
		/* 331 */
		array(),
		/* 332 */
		array(),
		/* 333 */
		array(),
		/* 334 */
		array(),
		/* 335 */
		array(),
		/* 336 */
		array(),
		/* 337 */
		array(),
		/* 338 */
		array(),
		/* 339 */
		array(),
		/* 340 */
		array(),
		/* 341 */
		array(),
		/* 342 */
		array(),
		/* 343 */
		array(),
		/* 344 */
		array(),
		/* 345 */
		array(),
		/* 346 */
		array(),
		/* 347 */
		array(),
		/* 348 */
		array(),
		/* 349 */
		array(),
		/* 350 */
		array(),
		/* 351 */
		array(),
		/* 352 */
		array(),
		/* 353 */
		array(),
		/* 354 */
		array(),
		/* 355 */
		array(),
		/* 356 */
		array(),
		/* 357 */
		array(),
		/* 358 */
		array(),
		/* 359 */
		array(),
		/* 360 */
		array(),
		/* 361 */
		array(),
		/* 362 */
		array(),
		/* 363 */
		array(),
		/* 364 */
		array(),
		/* 365 */
		array(),
		/* 366 */
		array(),
		/* 367 */
		array(),
		/* 368 */
		array(),
		/* 369 */
		array(),
		/* 370 */
		array(),
		/* 371 */
		array(),
		/* 372 */
		array(),
		/* 373 */
		array(),
		/* 374 */
		array(),
		/* 375 */
		array(),
		/* 376 */
		array(),
		/* 377 */
		array(),
		/* 378 */
		array(),
		/* 379 */
		array(),
		/* 380 */
		array(),
		/* 381 */
		array(),
		/* 382 */
		array(),
		/* 383 */
		array(),
		/* 384 */
		array(),
		/* 385 */
		array(),
		/* 386 */
		array(),
		/* 387 */
		array(),
		/* 388 */
		array(),
		/* 389 */
		array(),
		/* 390 */
		array(),
	);
	static public $yy_default = array(
		/*     0 */
		394,
		578,
		549,
		549,
		595,
		549,
		595,
		595,
		595,
		595,
		/*    10 */
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		/*    20 */
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		/*    30 */
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		/*    40 */
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		/*    50 */
		595,
		595,
		595,
		455,
		595,
		595,
		595,
		455,
		455,
		455,
		/*    60 */
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		460,
		595,
		/*    70 */
		595,
		466,
		465,
		484,
		547,
		579,
		581,
		548,
		580,
		489,
		/*    80 */
		488,
		480,
		479,
		481,
		457,
		485,
		462,
		476,
		460,
		437,
		/*    90 */
		492,
		493,
		504,
		468,
		455,
		391,
		595,
		455,
		455,
		475,
		/*   100 */
		512,
		455,
		455,
		595,
		455,
		455,
		595,
		561,
		595,
		595,
		/*   110 */
		595,
		468,
		468,
		468,
		595,
		522,
		522,
		522,
		468,
		513,
		/*   120 */
		468,
		513,
		595,
		595,
		595,
		595,
		595,
		455,
		595,
		595,
		/*   130 */
		595,
		595,
		595,
		595,
		455,
		513,
		595,
		595,
		595,
		595,
		/*   140 */
		595,
		468,
		595,
		595,
		595,
		595,
		522,
		473,
		558,
		491,
		/*   150 */
		478,
		472,
		497,
		495,
		496,
		513,
		471,
		556,
		595,
		595,
		/*   160 */
		523,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		/*   170 */
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		/*   180 */
		516,
		595,
		518,
		519,
		595,
		520,
		540,
		542,
		595,
		539,
		/*   190 */
		522,
		517,
		541,
		410,
		562,
		559,
		536,
		522,
		475,
		551,
		/*   200 */
		594,
		594,
		512,
		550,
		522,
		555,
		555,
		555,
		522,
		470,
		/*   210 */
		504,
		504,
		595,
		504,
		490,
		534,
		504,
		595,
		595,
		494,
		/*   220 */
		595,
		500,
		595,
		595,
		494,
		595,
		595,
		595,
		595,
		595,
		/*   230 */
		595,
		595,
		494,
		595,
		595,
		500,
		502,
		595,
		595,
		595,
		/*   240 */
		506,
		534,
		560,
		595,
		595,
		595,
		595,
		595,
		595,
		595,
		/*   250 */
		595,
		534,
		463,
		534,
		595,
		595,
		595,
		401,
		543,
		400,
		/*   260 */
		402,
		546,
		445,
		398,
		397,
		393,
		464,
		438,
		593,
		467,
		/*   270 */
		435,
		395,
		440,
		434,
		439,
		396,
		399,
		456,
		531,
		420,
		/*   280 */
		529,
		392,
		528,
		506,
		527,
		535,
		444,
		557,
		545,
		544,
		/*   290 */
		530,
		412,
		453,
		526,
		505,
		419,
		507,
		525,
		532,
		470,
		/*   300 */
		514,
		521,
		524,
		508,
		510,
		482,
		483,
		416,
		415,
		417,
		/*   310 */
		418,
		477,
		511,
		515,
		538,
		469,
		509,
		534,
		533,
		432,
		/*   320 */
		446,
		447,
		443,
		442,
		436,
		454,
		433,
		441,
		554,
		448,
		/*   330 */
		498,
		499,
		501,
		503,
		452,
		451,
		449,
		450,
		552,
		553,
		/*   340 */
		486,
		487,
		589,
		430,
		582,
		583,
		584,
		431,
		429,
		426,
		/*   350 */
		537,
		427,
		428,
		406,
		587,
		575,
		404,
		577,
		576,
		405,
		/*   360 */
		585,
		586,
		588,
		591,
		592,
		425,
		424,
		569,
		568,
		570,
		/*   370 */
		571,
		572,
		567,
		566,
		414,
		563,
		564,
		565,
		573,
		574,
		/*   380 */
		422,
		590,
		407,
		423,
		421,
		408,
		474,
		413,
		411,
		409,
		/*   390 */
		403,
	);
	const YYNOCODE = 124;
	const YYSTACKDEPTH = 100;
	const YYNSTATE = 391;
	const YYNRULE = 204;
	const YYERRORSYMBOL = 81;
	const YYERRSYMDT = 'yy0';
	const YYFALLBACK = 0;
	static public $yyFallback = array();

	static function Trace($TraceFILE, $zTracePrompt) {
		if (!$TraceFILE)
		{
			$zTracePrompt = 0;
		}
		elseif (!$zTracePrompt)
		{
			$TraceFILE = 0;
		}
		self::$yyTraceFILE = $TraceFILE;
		self::$yyTracePrompt = $zTracePrompt;
	}

	static function PrintTrace() {
		self::$yyTraceFILE = fopen('php://output', 'w');
		self::$yyTracePrompt = '<br>';
	}

	static public $yyTraceFILE;
	static public $yyTracePrompt;
	public $yyidx; /* Index of top element in stack */
	public $yyerrcnt; /* Shifts left before out of the error */
	public $yystack = array(); /* The parser's stack */

	public $yyTokenName = array(
			'$',
			'VERT',
			'COLON',
			'COMMENT',
			'PHPSTARTTAG',
			'PHPENDTAG',
			'ASPSTARTTAG',
			'ASPENDTAG',
			'FAKEPHPSTARTTAG',
			'XMLTAG',
			'TEXT',
			'STRIPON',
			'STRIPOFF',
			'LITERALSTART',
			'LITERALEND',
			'LITERAL',
			'LDEL',
			'RDEL',
			'DOLLAR',
			'ID',
			'EQUAL',
			'PTR',
			'LDELIF',
			'LDELFOR',
			'SEMICOLON',
			'INCDEC',
			'TO',
			'STEP',
			'LDELFOREACH',
			'SPACE',
			'AS',
			'APTR',
			'LDELSETFILTER',
			'SMARTYBLOCKCHILD',
			'LDELSLASH',
			'ATTR',
			'INTEGER',
			'COMMA',
			'OPENP',
			'CLOSEP',
			'MATH',
			'UNIMATH',
			'ANDSYM',
			'ISIN',
			'ISDIVBY',
			'ISNOTDIVBY',
			'ISEVEN',
			'ISNOTEVEN',
			'ISEVENBY',
			'ISNOTEVENBY',
			'ISODD',
			'ISNOTODD',
			'ISODDBY',
			'ISNOTODDBY',
			'INSTANCEOF',
			'QMARK',
			'NOT',
			'TYPECAST',
			'HEX',
			'DOT',
			'SINGLEQUOTESTRING',
			'DOUBLECOLON',
			'AT',
			'HATCH',
			'OPENB',
			'CLOSEB',
			'EQUALS',
			'NOTEQUALS',
			'GREATERTHAN',
			'LESSTHAN',
			'GREATEREQUAL',
			'LESSEQUAL',
			'IDENTITY',
			'NONEIDENTITY',
			'MOD',
			'LAND',
			'LOR',
			'LXOR',
			'QUOTE',
			'BACKTICK',
			'DOLLARID',
			'error',
			'start',
			'template',
			'template_element',
			'smartytag',
			'literal',
			'literal_elements',
			'literal_element',
			'value',
			'modifierlist',
			'attributes',
			'expr',
			'varindexed',
			'statement',
			'statements',
			'optspace',
			'varvar',
			'foraction',
			'modparameters',
			'attribute',
			'ternary',
			'array',
			'ifcond',
			'lop',
			'variable',
			'function',
			'doublequoted_with_quotes',
			'static_class_access',
			'object',
			'arrayindex',
			'indexdef',
			'varvarele',
			'objectchain',
			'objectelement',
			'method',
			'params',
			'modifier',
			'modparameter',
			'arrayelements',
			'arrayelement',
			'doublequoted',
			'doublequotedcontent',
	);

	static public $yyRuleName = array(
		/*   0 */
		"start ::= template",
		/*   1 */
		"template ::= template_element",
		/*   2 */
		"template ::= template template_element",
		/*   3 */
		"template ::=",
		/*   4 */
		"template_element ::= smartytag",
		/*   5 */
		"template_element ::= COMMENT",
		/*   6 */
		"template_element ::= literal",
		/*   7 */
		"template_element ::= PHPSTARTTAG",
		/*   8 */
		"template_element ::= PHPENDTAG",
		/*   9 */
		"template_element ::= ASPSTARTTAG",
		/*  10 */
		"template_element ::= ASPENDTAG",
		/*  11 */
		"template_element ::= FAKEPHPSTARTTAG",
		/*  12 */
		"template_element ::= XMLTAG",
		/*  13 */
		"template_element ::= TEXT",
		/*  14 */
		"template_element ::= STRIPON",
		/*  15 */
		"template_element ::= STRIPOFF",
		/*  16 */
		"literal ::= LITERALSTART LITERALEND",
		/*  17 */
		"literal ::= LITERALSTART literal_elements LITERALEND",
		/*  18 */
		"literal_elements ::= literal_elements literal_element",
		/*  19 */
		"literal_elements ::=",
		/*  20 */
		"literal_element ::= literal",
		/*  21 */
		"literal_element ::= LITERAL",
		/*  22 */
		"literal_element ::= PHPSTARTTAG",
		/*  23 */
		"literal_element ::= FAKEPHPSTARTTAG",
		/*  24 */
		"literal_element ::= PHPENDTAG",
		/*  25 */
		"literal_element ::= ASPSTARTTAG",
		/*  26 */
		"literal_element ::= ASPENDTAG",
		/*  27 */
		"smartytag ::= LDEL value RDEL",
		/*  28 */
		"smartytag ::= LDEL value modifierlist attributes RDEL",
		/*  29 */
		"smartytag ::= LDEL value attributes RDEL",
		/*  30 */
		"smartytag ::= LDEL expr modifierlist attributes RDEL",
		/*  31 */
		"smartytag ::= LDEL expr attributes RDEL",
		/*  32 */
		"smartytag ::= LDEL DOLLAR ID EQUAL value RDEL",
		/*  33 */
		"smartytag ::= LDEL DOLLAR ID EQUAL expr RDEL",
		/*  34 */
		"smartytag ::= LDEL DOLLAR ID EQUAL expr attributes RDEL",
		/*  35 */
		"smartytag ::= LDEL varindexed EQUAL expr attributes RDEL",
		/*  36 */
		"smartytag ::= LDEL ID attributes RDEL",
		/*  37 */
		"smartytag ::= LDEL ID RDEL",
		/*  38 */
		"smartytag ::= LDEL ID PTR ID attributes RDEL",
		/*  39 */
		"smartytag ::= LDEL ID modifierlist attributes RDEL",
		/*  40 */
		"smartytag ::= LDEL ID PTR ID modifierlist attributes RDEL",
		/*  41 */
		"smartytag ::= LDELIF expr RDEL",
		/*  42 */
		"smartytag ::= LDELIF expr attributes RDEL",
		/*  43 */
		"smartytag ::= LDELIF statement RDEL",
		/*  44 */
		"smartytag ::= LDELIF statement attributes RDEL",
		/*  45 */
		"smartytag ::= LDELFOR statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction attributes RDEL",
		/*  46 */
		"foraction ::= EQUAL expr",
		/*  47 */
		"foraction ::= INCDEC",
		/*  48 */
		"smartytag ::= LDELFOR statement TO expr attributes RDEL",
		/*  49 */
		"smartytag ::= LDELFOR statement TO expr STEP expr attributes RDEL",
		/*  50 */
		"smartytag ::= LDELFOREACH attributes RDEL",
		/*  51 */
		"smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar attributes RDEL",
		/*  52 */
		"smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL",
		/*  53 */
		"smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar attributes RDEL",
		/*  54 */
		"smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL",
		/*  55 */
		"smartytag ::= LDELSETFILTER ID modparameters RDEL",
		/*  56 */
		"smartytag ::= LDELSETFILTER ID modparameters modifierlist RDEL",
		/*  57 */
		"smartytag ::= SMARTYBLOCKCHILD",
		/*  58 */
		"smartytag ::= LDELSLASH ID RDEL",
		/*  59 */
		"smartytag ::= LDELSLASH ID modifierlist RDEL",
		/*  60 */
		"smartytag ::= LDELSLASH ID PTR ID RDEL",
		/*  61 */
		"smartytag ::= LDELSLASH ID PTR ID modifierlist RDEL",
		/*  62 */
		"attributes ::= attributes attribute",
		/*  63 */
		"attributes ::= attribute",
		/*  64 */
		"attributes ::=",
		/*  65 */
		"attribute ::= SPACE ID EQUAL ID",
		/*  66 */
		"attribute ::= ATTR expr",
		/*  67 */
		"attribute ::= ATTR value",
		/*  68 */
		"attribute ::= SPACE ID",
		/*  69 */
		"attribute ::= SPACE expr",
		/*  70 */
		"attribute ::= SPACE value",
		/*  71 */
		"attribute ::= SPACE INTEGER EQUAL expr",
		/*  72 */
		"statements ::= statement",
		/*  73 */
		"statements ::= statements COMMA statement",
		/*  74 */
		"statement ::= DOLLAR varvar EQUAL expr",
		/*  75 */
		"statement ::= varindexed EQUAL expr",
		/*  76 */
		"statement ::= OPENP statement CLOSEP",
		/*  77 */
		"expr ::= value",
		/*  78 */
		"expr ::= ternary",
		/*  79 */
		"expr ::= DOLLAR ID COLON ID",
		/*  80 */
		"expr ::= expr MATH value",
		/*  81 */
		"expr ::= expr UNIMATH value",
		/*  82 */
		"expr ::= expr ANDSYM value",
		/*  83 */
		"expr ::= array",
		/*  84 */
		"expr ::= expr modifierlist",
		/*  85 */
		"expr ::= expr ifcond expr",
		/*  86 */
		"expr ::= expr ISIN array",
		/*  87 */
		"expr ::= expr ISIN value",
		/*  88 */
		"expr ::= expr lop expr",
		/*  89 */
		"expr ::= expr ISDIVBY expr",
		/*  90 */
		"expr ::= expr ISNOTDIVBY expr",
		/*  91 */
		"expr ::= expr ISEVEN",
		/*  92 */
		"expr ::= expr ISNOTEVEN",
		/*  93 */
		"expr ::= expr ISEVENBY expr",
		/*  94 */
		"expr ::= expr ISNOTEVENBY expr",
		/*  95 */
		"expr ::= expr ISODD",
		/*  96 */
		"expr ::= expr ISNOTODD",
		/*  97 */
		"expr ::= expr ISODDBY expr",
		/*  98 */
		"expr ::= expr ISNOTODDBY expr",
		/*  99 */
		"expr ::= value INSTANCEOF ID",
		/* 100 */
		"expr ::= value INSTANCEOF value",
		/* 101 */
		"ternary ::= OPENP expr CLOSEP QMARK DOLLAR ID COLON expr",
		/* 102 */
		"ternary ::= OPENP expr CLOSEP QMARK expr COLON expr",
		/* 103 */
		"value ::= variable",
		/* 104 */
		"value ::= UNIMATH value",
		/* 105 */
		"value ::= NOT value",
		/* 106 */
		"value ::= TYPECAST value",
		/* 107 */
		"value ::= variable INCDEC",
		/* 108 */
		"value ::= HEX",
		/* 109 */
		"value ::= INTEGER",
		/* 110 */
		"value ::= INTEGER DOT INTEGER",
		/* 111 */
		"value ::= INTEGER DOT",
		/* 112 */
		"value ::= DOT INTEGER",
		/* 113 */
		"value ::= ID",
		/* 114 */
		"value ::= function",
		/* 115 */
		"value ::= OPENP expr CLOSEP",
		/* 116 */
		"value ::= SINGLEQUOTESTRING",
		/* 117 */
		"value ::= doublequoted_with_quotes",
		/* 118 */
		"value ::= ID DOUBLECOLON static_class_access",
		/* 119 */
		"value ::= varindexed DOUBLECOLON static_class_access",
		/* 120 */
		"value ::= smartytag",
		/* 121 */
		"value ::= value modifierlist",
		/* 122 */
		"variable ::= varindexed",
		/* 123 */
		"variable ::= DOLLAR varvar AT ID",
		/* 124 */
		"variable ::= object",
		/* 125 */
		"variable ::= HATCH ID HATCH",
		/* 126 */
		"variable ::= HATCH ID HATCH arrayindex",
		/* 127 */
		"variable ::= HATCH variable HATCH",
		/* 128 */
		"variable ::= HATCH variable HATCH arrayindex",
		/* 129 */
		"varindexed ::= DOLLAR varvar arrayindex",
		/* 130 */
		"arrayindex ::= arrayindex indexdef",
		/* 131 */
		"arrayindex ::=",
		/* 132 */
		"indexdef ::= DOT DOLLAR varvar",
		/* 133 */
		"indexdef ::= DOT DOLLAR varvar AT ID",
		/* 134 */
		"indexdef ::= DOT ID",
		/* 135 */
		"indexdef ::= DOT INTEGER",
		/* 136 */
		"indexdef ::= DOT LDEL expr RDEL",
		/* 137 */
		"indexdef ::= OPENB ID CLOSEB",
		/* 138 */
		"indexdef ::= OPENB ID DOT ID CLOSEB",
		/* 139 */
		"indexdef ::= OPENB expr CLOSEB",
		/* 140 */
		"indexdef ::= OPENB CLOSEB",
		/* 141 */
		"varvar ::= varvarele",
		/* 142 */
		"varvar ::= varvar varvarele",
		/* 143 */
		"varvarele ::= ID",
		/* 144 */
		"varvarele ::= LDEL expr RDEL",
		/* 145 */
		"object ::= varindexed objectchain",
		/* 146 */
		"objectchain ::= objectelement",
		/* 147 */
		"objectchain ::= objectchain objectelement",
		/* 148 */
		"objectelement ::= PTR ID arrayindex",
		/* 149 */
		"objectelement ::= PTR DOLLAR varvar arrayindex",
		/* 150 */
		"objectelement ::= PTR LDEL expr RDEL arrayindex",
		/* 151 */
		"objectelement ::= PTR ID LDEL expr RDEL arrayindex",
		/* 152 */
		"objectelement ::= PTR method",
		/* 153 */
		"function ::= ID OPENP params CLOSEP",
		/* 154 */
		"method ::= ID OPENP params CLOSEP",
		/* 155 */
		"method ::= DOLLAR ID OPENP params CLOSEP",
		/* 156 */
		"params ::= params COMMA expr",
		/* 157 */
		"params ::= expr",
		/* 158 */
		"params ::=",
		/* 159 */
		"modifierlist ::= modifierlist modifier modparameters",
		/* 160 */
		"modifierlist ::= modifier modparameters",
		/* 161 */
		"modifier ::= VERT AT ID",
		/* 162 */
		"modifier ::= VERT ID",
		/* 163 */
		"modparameters ::= modparameters modparameter",
		/* 164 */
		"modparameters ::=",
		/* 165 */
		"modparameter ::= COLON value",
		/* 166 */
		"modparameter ::= COLON array",
		/* 167 */
		"static_class_access ::= method",
		/* 168 */
		"static_class_access ::= method objectchain",
		/* 169 */
		"static_class_access ::= ID",
		/* 170 */
		"static_class_access ::= DOLLAR ID arrayindex",
		/* 171 */
		"static_class_access ::= DOLLAR ID arrayindex objectchain",
		/* 172 */
		"ifcond ::= EQUALS",
		/* 173 */
		"ifcond ::= NOTEQUALS",
		/* 174 */
		"ifcond ::= GREATERTHAN",
		/* 175 */
		"ifcond ::= LESSTHAN",
		/* 176 */
		"ifcond ::= GREATEREQUAL",
		/* 177 */
		"ifcond ::= LESSEQUAL",
		/* 178 */
		"ifcond ::= IDENTITY",
		/* 179 */
		"ifcond ::= NONEIDENTITY",
		/* 180 */
		"ifcond ::= MOD",
		/* 181 */
		"lop ::= LAND",
		/* 182 */
		"lop ::= LOR",
		/* 183 */
		"lop ::= LXOR",
		/* 184 */
		"array ::= OPENB arrayelements CLOSEB",
		/* 185 */
		"arrayelements ::= arrayelement",
		/* 186 */
		"arrayelements ::= arrayelements COMMA arrayelement",
		/* 187 */
		"arrayelements ::=",
		/* 188 */
		"arrayelement ::= value APTR expr",
		/* 189 */
		"arrayelement ::= ID APTR expr",
		/* 190 */
		"arrayelement ::= expr",
		/* 191 */
		"doublequoted_with_quotes ::= QUOTE QUOTE",
		/* 192 */
		"doublequoted_with_quotes ::= QUOTE doublequoted QUOTE",
		/* 193 */
		"doublequoted ::= doublequoted doublequotedcontent",
		/* 194 */
		"doublequoted ::= doublequotedcontent",
		/* 195 */
		"doublequotedcontent ::= BACKTICK variable BACKTICK",
		/* 196 */
		"doublequotedcontent ::= BACKTICK expr BACKTICK",
		/* 197 */
		"doublequotedcontent ::= DOLLARID",
		/* 198 */
		"doublequotedcontent ::= LDEL variable RDEL",
		/* 199 */
		"doublequotedcontent ::= LDEL expr RDEL",
		/* 200 */
		"doublequotedcontent ::= smartytag",
		/* 201 */
		"doublequotedcontent ::= TEXT",
		/* 202 */
		"optspace ::= SPACE",
		/* 203 */
		"optspace ::=",
	);

	function tokenName($tokenType) {
		if ($tokenType === 0)
		{
			return 'End of Input';
		}
		if ($tokenType > 0 && $tokenType < count($this->yyTokenName))
		{
			return $this->yyTokenName[$tokenType];
		}
		else
		{
			return "Unknown";
		}
	}

	static function yy_destructor($yymajor, $yypminor) {
		switch ($yymajor)
		{
			default:
				break; /* If no destructor action specified: do nothing */
		}
	}

	function yy_pop_parser_stack() {
		if (!count($this->yystack))
		{
			return;
		}
		$yytos = array_pop($this->yystack);
		if (self::$yyTraceFILE && $this->yyidx >= 0)
		{
			fwrite(self::$yyTraceFILE, self::$yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] . "\n");
		}
		$yymajor = $yytos->major;
		self::yy_destructor($yymajor, $yytos->minor);
		$this->yyidx--;

		return $yymajor;
	}

	function __destruct() {
		while ($this->yystack !== Array())
		{
			$this->yy_pop_parser_stack();
		}
		if (is_resource(self::$yyTraceFILE))
		{
			fclose(self::$yyTraceFILE);
		}
	}

	function yy_get_expected_tokens($token) {
		$state = $this->yystack[$this->yyidx]->stateno;
		$expected = self::$yyExpectedTokens[$state];
		if (in_array($token, self::$yyExpectedTokens[$state], true))
		{
			return $expected;
		}
		$stack = $this->yystack;
		$yyidx = $this->yyidx;
		do
		{
			$yyact = $this->yy_find_shift_action($token);
			if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE)
			{
				// reduce action
				$done = 0;
				do
				{
					if ($done++ == 100)
					{
						$this->yyidx = $yyidx;
						$this->yystack = $stack;
						// too much recursion prevents proper detection
						// so give up
						return array_unique($expected);
					}
					$yyruleno = $yyact - self::YYNSTATE;
					$this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
					$nextstate = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, self::$yyRuleInfo[$yyruleno]['lhs']);
					if (isset(self::$yyExpectedTokens[$nextstate]))
					{
						$expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
						if (in_array($token, self::$yyExpectedTokens[$nextstate], true))
						{
							$this->yyidx = $yyidx;
							$this->yystack = $stack;

							return array_unique($expected);
						}
					}
					if ($nextstate < self::YYNSTATE)
					{
						// we need to shift a non-terminal
						$this->yyidx++;
						$x = new TP_yyStackEntry;
						$x->stateno = $nextstate;
						$x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
						$this->yystack[$this->yyidx] = $x;
						continue 2;
					}
					elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1)
					{
						$this->yyidx = $yyidx;
						$this->yystack = $stack;
						// the last token was just ignored, we can't accept
						// by ignoring input, this is in essence ignoring a
						// syntax error!
						return array_unique($expected);
					}
					elseif ($nextstate === self::YY_NO_ACTION)
					{
						$this->yyidx = $yyidx;
						$this->yystack = $stack;

						// input accepted, but not shifted (I guess)
						return $expected;
					}
					else
					{
						$yyact = $nextstate;
					}
				} while (true);
			}
			break;
		} while (true);
		$this->yyidx = $yyidx;
		$this->yystack = $stack;

		return array_unique($expected);
	}

	function yy_is_expected_token($token) {
		if ($token === 0)
		{
			return true; // 0 is not part of this
		}
		$state = $this->yystack[$this->yyidx]->stateno;
		if (in_array($token, self::$yyExpectedTokens[$state], true))
		{
			return true;
		}
		$stack = $this->yystack;
		$yyidx = $this->yyidx;
		do
		{
			$yyact = $this->yy_find_shift_action($token);
			if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE)
			{
				// reduce action
				$done = 0;
				do
				{
					if ($done++ == 100)
					{
						$this->yyidx = $yyidx;
						$this->yystack = $stack;
						// too much recursion prevents proper detection
						// so give up
						return true;
					}
					$yyruleno = $yyact - self::YYNSTATE;
					$this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
					$nextstate = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, self::$yyRuleInfo[$yyruleno]['lhs']);
					if (isset(self::$yyExpectedTokens[$nextstate]) && in_array($token, self::$yyExpectedTokens[$nextstate], true))
					{
						$this->yyidx = $yyidx;
						$this->yystack = $stack;

						return true;
					}
					if ($nextstate < self::YYNSTATE)
					{
						// we need to shift a non-terminal
						$this->yyidx++;
						$x = new TP_yyStackEntry;
						$x->stateno = $nextstate;
						$x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
						$this->yystack[$this->yyidx] = $x;
						continue 2;
					}
					elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1)
					{
						$this->yyidx = $yyidx;
						$this->yystack = $stack;
						if (!$token)
						{
							// end of input: this is valid
							return true;
						}
						// the last token was just ignored, we can't accept
						// by ignoring input, this is in essence ignoring a
						// syntax error!
						return false;
					}
					elseif ($nextstate === self::YY_NO_ACTION)
					{
						$this->yyidx = $yyidx;
						$this->yystack = $stack;

						// input accepted, but not shifted (I guess)
						return true;
					}
					else
					{
						$yyact = $nextstate;
					}
				} while (true);
			}
			break;
		} while (true);
		$this->yyidx = $yyidx;
		$this->yystack = $stack;

		return true;
	}

	function yy_find_shift_action($iLookAhead) {
		$stateno = $this->yystack[$this->yyidx]->stateno;

		/* if ($this->yyidx < 0) return self::YY_NO_ACTION;  */
		if (!isset(self::$yy_shift_ofst[$stateno]))
		{
			// no shift actions
			return self::$yy_default[$stateno];
		}
		$i = self::$yy_shift_ofst[$stateno];
		if ($i === self::YY_SHIFT_USE_DFLT)
		{
			return self::$yy_default[$stateno];
		}
		if ($iLookAhead == self::YYNOCODE)
		{
			return self::YY_NO_ACTION;
		}
		$i += $iLookAhead;
		if ($i < 0 || $i >= self::YY_SZ_ACTTAB || self::$yy_lookahead[$i] != $iLookAhead)
		{
			if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback) && ($iFallback = self::$yyFallback[$iLookAhead]) != 0)
			{
				if (self::$yyTraceFILE)
				{
					fwrite(self::$yyTraceFILE, self::$yyTracePrompt . "FALLBACK " . $this->yyTokenName[$iLookAhead] . " => " . $this->yyTokenName[$iFallback] . "\n");
				}

				return $this->yy_find_shift_action($iFallback);
			}

			return self::$yy_default[$stateno];
		}
		else
		{
			return self::$yy_action[$i];
		}
	}

	function yy_find_reduce_action($stateno, $iLookAhead) {
		/* $stateno = $this->yystack[$this->yyidx]->stateno; */

		if (!isset(self::$yy_reduce_ofst[$stateno]))
		{
			return self::$yy_default[$stateno];
		}
		$i = self::$yy_reduce_ofst[$stateno];
		if ($i == self::YY_REDUCE_USE_DFLT)
		{
			return self::$yy_default[$stateno];
		}
		if ($iLookAhead == self::YYNOCODE)
		{
			return self::YY_NO_ACTION;
		}
		$i += $iLookAhead;
		if ($i < 0 || $i >= self::YY_SZ_ACTTAB || self::$yy_lookahead[$i] != $iLookAhead)
		{
			return self::$yy_default[$stateno];
		}
		else
		{
			return self::$yy_action[$i];
		}
	}

	function yy_shift($yyNewState, $yyMajor, $yypMinor) {
		$this->yyidx++;
		if ($this->yyidx >= self::YYSTACKDEPTH)
		{
			$this->yyidx--;
			if (self::$yyTraceFILE)
			{
				fprintf(self::$yyTraceFILE, "%sStack Overflow!\n", self::$yyTracePrompt);
			}
			while ($this->yyidx >= 0)
			{
				$this->yy_pop_parser_stack();
			}
			#line 84 "smarty_internal_templateparser.y"

			$this->internalError = true;
			$this->compiler->trigger_template_error("Stack overflow in template parser");

			#line 1724 "smarty_internal_templateparser.php"
			return;
		}
		$yytos = new TP_yyStackEntry;
		$yytos->stateno = $yyNewState;
		$yytos->major = $yyMajor;
		$yytos->minor = $yypMinor;
		array_push($this->yystack, $yytos);
		if (self::$yyTraceFILE && $this->yyidx > 0)
		{
			fprintf(self::$yyTraceFILE, "%sShift %d\n", self::$yyTracePrompt, $yyNewState);
			fprintf(self::$yyTraceFILE, "%sStack:", self::$yyTracePrompt);
			for ($i = 1; $i <= $this->yyidx; $i++)
			{
				fprintf(self::$yyTraceFILE, " %s", $this->yyTokenName[$this->yystack[$i]->major]);
			}
			fwrite(self::$yyTraceFILE, "\n");
		}
	}

	static public $yyRuleInfo = array(
			array('lhs' => 82, 'rhs' => 1),
			array('lhs' => 83, 'rhs' => 1),
			array('lhs' => 83, 'rhs' => 2),
			array('lhs' => 83, 'rhs' => 0),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 84, 'rhs' => 1),
			array('lhs' => 86, 'rhs' => 2),
			array('lhs' => 86, 'rhs' => 3),
			array('lhs' => 87, 'rhs' => 2),
			array('lhs' => 87, 'rhs' => 0),
			array('lhs' => 88, 'rhs' => 1),
			array('lhs' => 88, 'rhs' => 1),
			array('lhs' => 88, 'rhs' => 1),
			array('lhs' => 88, 'rhs' => 1),
			array('lhs' => 88, 'rhs' => 1),
			array('lhs' => 88, 'rhs' => 1),
			array('lhs' => 88, 'rhs' => 1),
			array('lhs' => 85, 'rhs' => 3),
			array('lhs' => 85, 'rhs' => 5),
			array('lhs' => 85, 'rhs' => 4),
			array('lhs' => 85, 'rhs' => 5),
			array('lhs' => 85, 'rhs' => 4),
			array('lhs' => 85, 'rhs' => 6),
			array('lhs' => 85, 'rhs' => 6),
			array('lhs' => 85, 'rhs' => 7),
			array('lhs' => 85, 'rhs' => 6),
			array('lhs' => 85, 'rhs' => 4),
			array('lhs' => 85, 'rhs' => 3),
			array('lhs' => 85, 'rhs' => 6),
			array('lhs' => 85, 'rhs' => 5),
			array('lhs' => 85, 'rhs' => 7),
			array('lhs' => 85, 'rhs' => 3),
			array('lhs' => 85, 'rhs' => 4),
			array('lhs' => 85, 'rhs' => 3),
			array('lhs' => 85, 'rhs' => 4),
			array('lhs' => 85, 'rhs' => 12),
			array('lhs' => 98, 'rhs' => 2),
			array('lhs' => 98, 'rhs' => 1),
			array('lhs' => 85, 'rhs' => 6),
			array('lhs' => 85, 'rhs' => 8),
			array('lhs' => 85, 'rhs' => 3),
			array('lhs' => 85, 'rhs' => 8),
			array('lhs' => 85, 'rhs' => 11),
			array('lhs' => 85, 'rhs' => 8),
			array('lhs' => 85, 'rhs' => 11),
			array('lhs' => 85, 'rhs' => 4),
			array('lhs' => 85, 'rhs' => 5),
			array('lhs' => 85, 'rhs' => 1),
			array('lhs' => 85, 'rhs' => 3),
			array('lhs' => 85, 'rhs' => 4),
			array('lhs' => 85, 'rhs' => 5),
			array('lhs' => 85, 'rhs' => 6),
			array('lhs' => 91, 'rhs' => 2),
			array('lhs' => 91, 'rhs' => 1),
			array('lhs' => 91, 'rhs' => 0),
			array('lhs' => 100, 'rhs' => 4),
			array('lhs' => 100, 'rhs' => 2),
			array('lhs' => 100, 'rhs' => 2),
			array('lhs' => 100, 'rhs' => 2),
			array('lhs' => 100, 'rhs' => 2),
			array('lhs' => 100, 'rhs' => 2),
			array('lhs' => 100, 'rhs' => 4),
			array('lhs' => 95, 'rhs' => 1),
			array('lhs' => 95, 'rhs' => 3),
			array('lhs' => 94, 'rhs' => 4),
			array('lhs' => 94, 'rhs' => 3),
			array('lhs' => 94, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 1),
			array('lhs' => 92, 'rhs' => 1),
			array('lhs' => 92, 'rhs' => 4),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 1),
			array('lhs' => 92, 'rhs' => 2),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 2),
			array('lhs' => 92, 'rhs' => 2),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 2),
			array('lhs' => 92, 'rhs' => 2),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 92, 'rhs' => 3),
			array('lhs' => 101, 'rhs' => 8),
			array('lhs' => 101, 'rhs' => 7),
			array('lhs' => 89, 'rhs' => 1),
			array('lhs' => 89, 'rhs' => 2),
			array('lhs' => 89, 'rhs' => 2),
			array('lhs' => 89, 'rhs' => 2),
			array('lhs' => 89, 'rhs' => 2),
			array('lhs' => 89, 'rhs' => 1),
			array('lhs' => 89, 'rhs' => 1),
			array('lhs' => 89, 'rhs' => 3),
			array('lhs' => 89, 'rhs' => 2),
			array('lhs' => 89, 'rhs' => 2),
			array('lhs' => 89, 'rhs' => 1),
			array('lhs' => 89, 'rhs' => 1),
			array('lhs' => 89, 'rhs' => 3),
			array('lhs' => 89, 'rhs' => 1),
			array('lhs' => 89, 'rhs' => 1),
			array('lhs' => 89, 'rhs' => 3),
			array('lhs' => 89, 'rhs' => 3),
			array('lhs' => 89, 'rhs' => 1),
			array('lhs' => 89, 'rhs' => 2),
			array('lhs' => 105, 'rhs' => 1),
			array('lhs' => 105, 'rhs' => 4),
			array('lhs' => 105, 'rhs' => 1),
			array('lhs' => 105, 'rhs' => 3),
			array('lhs' => 105, 'rhs' => 4),
			array('lhs' => 105, 'rhs' => 3),
			array('lhs' => 105, 'rhs' => 4),
			array('lhs' => 93, 'rhs' => 3),
			array('lhs' => 110, 'rhs' => 2),
			array('lhs' => 110, 'rhs' => 0),
			array('lhs' => 111, 'rhs' => 3),
			array('lhs' => 111, 'rhs' => 5),
			array('lhs' => 111, 'rhs' => 2),
			array('lhs' => 111, 'rhs' => 2),
			array('lhs' => 111, 'rhs' => 4),
			array('lhs' => 111, 'rhs' => 3),
			array('lhs' => 111, 'rhs' => 5),
			array('lhs' => 111, 'rhs' => 3),
			array('lhs' => 111, 'rhs' => 2),
			array('lhs' => 97, 'rhs' => 1),
			array('lhs' => 97, 'rhs' => 2),
			array('lhs' => 112, 'rhs' => 1),
			array('lhs' => 112, 'rhs' => 3),
			array('lhs' => 109, 'rhs' => 2),
			array('lhs' => 113, 'rhs' => 1),
			array('lhs' => 113, 'rhs' => 2),
			array('lhs' => 114, 'rhs' => 3),
			array('lhs' => 114, 'rhs' => 4),
			array('lhs' => 114, 'rhs' => 5),
			array('lhs' => 114, 'rhs' => 6),
			array('lhs' => 114, 'rhs' => 2),
			array('lhs' => 106, 'rhs' => 4),
			array('lhs' => 115, 'rhs' => 4),
			array('lhs' => 115, 'rhs' => 5),
			array('lhs' => 116, 'rhs' => 3),
			array('lhs' => 116, 'rhs' => 1),
			array('lhs' => 116, 'rhs' => 0),
			array('lhs' => 90, 'rhs' => 3),
			array('lhs' => 90, 'rhs' => 2),
			array('lhs' => 117, 'rhs' => 3),
			array('lhs' => 117, 'rhs' => 2),
			array('lhs' => 99, 'rhs' => 2),
			array('lhs' => 99, 'rhs' => 0),
			array('lhs' => 118, 'rhs' => 2),
			array('lhs' => 118, 'rhs' => 2),
			array('lhs' => 108, 'rhs' => 1),
			array('lhs' => 108, 'rhs' => 2),
			array('lhs' => 108, 'rhs' => 1),
			array('lhs' => 108, 'rhs' => 3),
			array('lhs' => 108, 'rhs' => 4),
			array('lhs' => 103, 'rhs' => 1),
			array('lhs' => 103, 'rhs' => 1),
			array('lhs' => 103, 'rhs' => 1),
			array('lhs' => 103, 'rhs' => 1),
			array('lhs' => 103, 'rhs' => 1),
			array('lhs' => 103, 'rhs' => 1),
			array('lhs' => 103, 'rhs' => 1),
			array('lhs' => 103, 'rhs' => 1),
			array('lhs' => 103, 'rhs' => 1),
			array('lhs' => 104, 'rhs' => 1),
			array('lhs' => 104, 'rhs' => 1),
			array('lhs' => 104, 'rhs' => 1),
			array('lhs' => 102, 'rhs' => 3),
			array('lhs' => 119, 'rhs' => 1),
			array('lhs' => 119, 'rhs' => 3),
			array('lhs' => 119, 'rhs' => 0),
			array('lhs' => 120, 'rhs' => 3),
			array('lhs' => 120, 'rhs' => 3),
			array('lhs' => 120, 'rhs' => 1),
			array('lhs' => 107, 'rhs' => 2),
			array('lhs' => 107, 'rhs' => 3),
			array('lhs' => 121, 'rhs' => 2),
			array('lhs' => 121, 'rhs' => 1),
			array('lhs' => 122, 'rhs' => 3),
			array('lhs' => 122, 'rhs' => 3),
			array('lhs' => 122, 'rhs' => 1),
			array('lhs' => 122, 'rhs' => 3),
			array('lhs' => 122, 'rhs' => 3),
			array('lhs' => 122, 'rhs' => 1),
			array('lhs' => 122, 'rhs' => 1),
			array('lhs' => 96, 'rhs' => 1),
			array('lhs' => 96, 'rhs' => 0),
	);

	static public $yyReduceMap = array(
			0 => 0,
			1 => 1,
			2 => 1,
			4 => 4,
			5 => 5,
			6 => 6,
			7 => 7,
			8 => 8,
			9 => 9,
			10 => 10,
			11 => 11,
			12 => 12,
			13 => 13,
			14 => 14,
			15 => 15,
			16 => 16,
			19 => 16,
			203 => 16,
			17 => 17,
			76 => 17,
			18 => 18,
			104 => 18,
			106 => 18,
			107 => 18,
			130 => 18,
			168 => 18,
			20 => 20,
			21 => 20,
			47 => 20,
			69 => 20,
			70 => 20,
			77 => 20,
			78 => 20,
			83 => 20,
			103 => 20,
			108 => 20,
			109 => 20,
			114 => 20,
			116 => 20,
			117 => 20,
			124 => 20,
			141 => 20,
			167 => 20,
			169 => 20,
			185 => 20,
			190 => 20,
			202 => 20,
			22 => 22,
			23 => 22,
			24 => 24,
			25 => 25,
			26 => 26,
			27 => 27,
			28 => 28,
			29 => 29,
			31 => 29,
			30 => 30,
			32 => 32,
			33 => 32,
			34 => 34,
			35 => 35,
			36 => 36,
			37 => 37,
			38 => 38,
			39 => 39,
			40 => 40,
			41 => 41,
			42 => 42,
			44 => 42,
			43 => 43,
			45 => 45,
			46 => 46,
			48 => 48,
			49 => 49,
			50 => 50,
			51 => 51,
			52 => 52,
			53 => 53,
			54 => 54,
			55 => 55,
			56 => 56,
			57 => 57,
			58 => 58,
			59 => 59,
			60 => 60,
			61 => 61,
			62 => 62,
			63 => 63,
			72 => 63,
			157 => 63,
			161 => 63,
			165 => 63,
			166 => 63,
			64 => 64,
			158 => 64,
			164 => 64,
			65 => 65,
			66 => 66,
			67 => 66,
			68 => 68,
			71 => 71,
			73 => 73,
			74 => 74,
			75 => 74,
			79 => 79,
			80 => 80,
			81 => 80,
			82 => 80,
			84 => 84,
			121 => 84,
			85 => 85,
			88 => 85,
			99 => 85,
			86 => 86,
			87 => 87,
			89 => 89,
			90 => 90,
			91 => 91,
			96 => 91,
			92 => 92,
			95 => 92,
			93 => 93,
			98 => 93,
			94 => 94,
			97 => 94,
			100 => 100,
			101 => 101,
			102 => 102,
			105 => 105,
			110 => 110,
			111 => 111,
			112 => 112,
			113 => 113,
			115 => 115,
			118 => 118,
			119 => 119,
			120 => 120,
			122 => 122,
			123 => 123,
			125 => 125,
			126 => 126,
			127 => 127,
			128 => 128,
			129 => 129,
			131 => 131,
			187 => 131,
			132 => 132,
			133 => 133,
			134 => 134,
			135 => 135,
			136 => 136,
			139 => 136,
			137 => 137,
			138 => 138,
			140 => 140,
			142 => 142,
			143 => 143,
			144 => 144,
			145 => 145,
			146 => 146,
			147 => 147,
			148 => 148,
			149 => 149,
			150 => 150,
			151 => 151,
			152 => 152,
			153 => 153,
			154 => 154,
			155 => 155,
			156 => 156,
			159 => 159,
			160 => 160,
			162 => 162,
			163 => 163,
			170 => 170,
			171 => 171,
			172 => 172,
			173 => 173,
			174 => 174,
			175 => 175,
			176 => 176,
			177 => 177,
			178 => 178,
			179 => 179,
			180 => 180,
			181 => 181,
			182 => 182,
			183 => 183,
			184 => 184,
			186 => 186,
			188 => 188,
			189 => 189,
			191 => 191,
			192 => 192,
			193 => 193,
			194 => 194,
			195 => 195,
			196 => 195,
			198 => 195,
			197 => 197,
			199 => 199,
			200 => 200,
			201 => 201,
	);

	#line 95 "smarty_internal_templateparser.y"
	function yy_r0() {
		$this->_retvalue = $this->root_buffer->to_smarty_php();
	}

	#line 2160 "smarty_internal_templateparser.php"
	#line 103 "smarty_internal_templateparser.y"
	function yy_r1() {
		$this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2165 "smarty_internal_templateparser.php"
	#line 119 "smarty_internal_templateparser.y"
	function yy_r4() {
		if ($this->compiler->has_code)
		{
			$tmp = '';
			foreach ($this->compiler->prefix_code as $code)
			{
				$tmp .= $code;
			}
			$this->compiler->prefix_code = array();
			$this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode($tmp . $this->yystack[$this->yyidx + 0]->minor, true));
		}
		else
		{
			$this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + 0]->minor);
		}
		$this->compiler->has_variable_string = false;
		$this->block_nesting_level = count($this->compiler->_tag_stack);
	}

	#line 2177 "smarty_internal_templateparser.php"
	#line 131 "smarty_internal_templateparser.y"
	function yy_r5() {
		$this->_retvalue = new _smarty_tag($this, '');
	}

	#line 2182 "smarty_internal_templateparser.php"
	#line 136 "smarty_internal_templateparser.y"
	function yy_r6() {
		$this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2187 "smarty_internal_templateparser.php"
	#line 141 "smarty_internal_templateparser.y"
	function yy_r7() {
		if ($this->php_handling == Smarty::PHP_PASSTHRU)
		{
			$this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor));
		}
		elseif ($this->php_handling == Smarty::PHP_QUOTE)
		{
			$this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
		}
		elseif ($this->php_handling == Smarty::PHP_ALLOW)
		{
			if (!($this->smarty instanceof SmartyBC))
			{
				$this->compiler->trigger_template_error(self::Err3);
			}
			$this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('<?php', true));
		}
		elseif ($this->php_handling == Smarty::PHP_REMOVE)
		{
			$this->_retvalue = new _smarty_text($this, '');
		}
	}

	#line 2203 "smarty_internal_templateparser.php"
	#line 157 "smarty_internal_templateparser.y"
	function yy_r8() {
		if ($this->is_xml)
		{
			$this->compiler->tag_nocache = true;
			$this->is_xml = false;
			$save = $this->template->has_nocache_code;
			$this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode("<?php echo '?>';?>\n", $this->compiler, true));
			$this->template->has_nocache_code = $save;
		}
		elseif ($this->php_handling == Smarty::PHP_PASSTHRU)
		{
			$this->_retvalue = new _smarty_text($this, '?<?php ?>>');
		}
		elseif ($this->php_handling == Smarty::PHP_QUOTE)
		{
			$this->_retvalue = new _smarty_text($this, htmlspecialchars('?>', ENT_QUOTES));
		}
		elseif ($this->php_handling == Smarty::PHP_ALLOW)
		{
			$this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('?>', true));
		}
		elseif ($this->php_handling == Smarty::PHP_REMOVE)
		{
			$this->_retvalue = new _smarty_text($this, '');
		}
	}

	#line 2222 "smarty_internal_templateparser.php"
	#line 176 "smarty_internal_templateparser.y"
	function yy_r9() {
		if ($this->php_handling == Smarty::PHP_PASSTHRU)
		{
			$this->_retvalue = new _smarty_text($this, '<<?php ?>%');
		}
		elseif ($this->php_handling == Smarty::PHP_QUOTE)
		{
			$this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
		}
		elseif ($this->php_handling == Smarty::PHP_ALLOW)
		{
			if ($this->asp_tags)
			{
				if (!($this->smarty instanceof SmartyBC))
				{
					$this->compiler->trigger_template_error(self::Err3);
				}
				$this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('<%', true));
			}
			else
			{
				$this->_retvalue = new _smarty_text($this, '<<?php ?>%');
			}
		}
		elseif ($this->php_handling == Smarty::PHP_REMOVE)
		{
			if ($this->asp_tags)
			{
				$this->_retvalue = new _smarty_text($this, '');
			}
			else
			{
				$this->_retvalue = new _smarty_text($this, '<<?php ?>%');
			}
		}
	}

	#line 2246 "smarty_internal_templateparser.php"
	#line 200 "smarty_internal_templateparser.y"
	function yy_r10() {
		if ($this->php_handling == Smarty::PHP_PASSTHRU)
		{
			$this->_retvalue = new _smarty_text($this, '%<?php ?>>');
		}
		elseif ($this->php_handling == Smarty::PHP_QUOTE)
		{
			$this->_retvalue = new _smarty_text($this, htmlspecialchars('%>', ENT_QUOTES));
		}
		elseif ($this->php_handling == Smarty::PHP_ALLOW)
		{
			if ($this->asp_tags)
			{
				$this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode('%>', true));
			}
			else
			{
				$this->_retvalue = new _smarty_text($this, '%<?php ?>>');
			}
		}
		elseif ($this->php_handling == Smarty::PHP_REMOVE)
		{
			if ($this->asp_tags)
			{
				$this->_retvalue = new _smarty_text($this, '');
			}
			else
			{
				$this->_retvalue = new _smarty_text($this, '%<?php ?>>');
			}
		}
	}

	#line 2267 "smarty_internal_templateparser.php"
	#line 220 "smarty_internal_templateparser.y"
	function yy_r11() {
		if ($this->strip)
		{
			$this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor)));
		}
		else
		{
			$this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor));
		}
	}

	#line 2276 "smarty_internal_templateparser.php"
	#line 229 "smarty_internal_templateparser.y"
	function yy_r12() {
		$this->compiler->tag_nocache = true;
		$this->is_xml = true;
		$save = $this->template->has_nocache_code;
		$this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode("<?php echo '<?xml';?>", $this->compiler, true));
		$this->template->has_nocache_code = $save;
	}

	#line 2285 "smarty_internal_templateparser.php"
	#line 238 "smarty_internal_templateparser.y"
	function yy_r13() {
		if ($this->strip)
		{
			$this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor));
		}
		else
		{
			$this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
		}
	}

	#line 2294 "smarty_internal_templateparser.php"
	#line 247 "smarty_internal_templateparser.y"
	function yy_r14() {
		$this->strip = true;
		$this->_retvalue = new _smarty_text($this, '');
	}

	#line 2300 "smarty_internal_templateparser.php"
	#line 252 "smarty_internal_templateparser.y"
	function yy_r15() {
		$this->strip = false;
		$this->_retvalue = new _smarty_text($this, '');
	}

	#line 2306 "smarty_internal_templateparser.php"
	#line 258 "smarty_internal_templateparser.y"
	function yy_r16() {
		$this->_retvalue = '';
	}

	#line 2311 "smarty_internal_templateparser.php"
	#line 262 "smarty_internal_templateparser.y"
	function yy_r17() {
		$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
	}

	#line 2316 "smarty_internal_templateparser.php"
	#line 266 "smarty_internal_templateparser.y"
	function yy_r18() {
		$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2321 "smarty_internal_templateparser.php"
	#line 274 "smarty_internal_templateparser.y"
	function yy_r20() {
		$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2326 "smarty_internal_templateparser.php"
	#line 282 "smarty_internal_templateparser.y"
	function yy_r22() {
		$this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2331 "smarty_internal_templateparser.php"
	#line 290 "smarty_internal_templateparser.y"
	function yy_r24() {
		$this->_retvalue = self::escape_end_tag($this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2336 "smarty_internal_templateparser.php"
	#line 294 "smarty_internal_templateparser.y"
	function yy_r25() {
		$this->_retvalue = '<<?php ?>%';
	}

	#line 2341 "smarty_internal_templateparser.php"
	#line 298 "smarty_internal_templateparser.y"
	function yy_r26() {
		$this->_retvalue = '%<?php ?>>';
	}

	#line 2346 "smarty_internal_templateparser.php"
	#line 307 "smarty_internal_templateparser.y"
	function yy_r27() {
		$this->_retvalue = $this->compiler->compileTag('private_print_expression', array(), array('value' => $this->yystack[$this->yyidx + -1]->minor));
	}

	#line 2351 "smarty_internal_templateparser.php"
	#line 311 "smarty_internal_templateparser.y"
	function yy_r28() {
		$this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + -1]->minor, array(
				'value' => $this->yystack[$this->yyidx + -3]->minor,
				'modifierlist' => $this->yystack[$this->yyidx + -2]->minor
		));
	}

	#line 2356 "smarty_internal_templateparser.php"
	#line 315 "smarty_internal_templateparser.y"
	function yy_r29() {
		$this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + -1]->minor, array('value' => $this->yystack[$this->yyidx + -2]->minor));
	}

	#line 2361 "smarty_internal_templateparser.php"
	#line 319 "smarty_internal_templateparser.y"
	function yy_r30() {
		$this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + -1]->minor, array(
				'value' => $this->yystack[$this->yyidx + -3]->minor,
				'modifierlist' => $this->yystack[$this->yyidx + -2]->minor
		));
	}

	#line 2366 "smarty_internal_templateparser.php"
	#line 332 "smarty_internal_templateparser.y"
	function yy_r32() {
		$this->_retvalue = $this->compiler->compileTag('assign', array(
				array('value' => $this->yystack[$this->yyidx + -1]->minor),
				array('var' => "'" . $this->yystack[$this->yyidx + -3]->minor . "'")
		));
	}

	#line 2371 "smarty_internal_templateparser.php"
	#line 340 "smarty_internal_templateparser.y"
	function yy_r34() {
		$this->_retvalue = $this->compiler->compileTag('assign', array_merge(array(
																					 array('value' => $this->yystack[$this->yyidx + -2]->minor),
																					 array('var' => "'" . $this->yystack[$this->yyidx + -4]->minor . "'")
																			 ), $this->yystack[$this->yyidx + -1]->minor));
	}

	#line 2376 "smarty_internal_templateparser.php"
	#line 344 "smarty_internal_templateparser.y"
	function yy_r35() {
		$this->_retvalue = $this->compiler->compileTag('assign', array_merge(array(
																					 array('value' => $this->yystack[$this->yyidx + -2]->minor),
																					 array('var' => $this->yystack[$this->yyidx + -4]->minor['var'])
																			 ), $this->yystack[$this->yyidx + -1]->minor), array('smarty_internal_index' => $this->yystack[$this->yyidx + -4]->minor['smarty_internal_index']));
	}

	#line 2381 "smarty_internal_templateparser.php"
	#line 349 "smarty_internal_templateparser.y"
	function yy_r36() {
		$this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor);
	}

	#line 2386 "smarty_internal_templateparser.php"
	#line 353 "smarty_internal_templateparser.y"
	function yy_r37() {
		$this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor, array());
	}

	#line 2391 "smarty_internal_templateparser.php"
	#line 358 "smarty_internal_templateparser.y"
	function yy_r38() {
		$this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor, $this->yystack[$this->yyidx + -1]->minor, array('object_methode' => $this->yystack[$this->yyidx + -2]->minor));
	}

	#line 2396 "smarty_internal_templateparser.php"
	#line 363 "smarty_internal_templateparser.y"
	function yy_r39() {
		$this->_retvalue = '<?php ob_start();?>' . $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor) . '<?php echo ';
		$this->_retvalue .= $this->compiler->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack[$this->yyidx + -2]->minor, 'value' => 'ob_get_clean()')) . '?>';
	}

	#line 2402 "smarty_internal_templateparser.php"
	#line 369 "smarty_internal_templateparser.y"
	function yy_r40() {
		$this->_retvalue = '<?php ob_start();?>' . $this->compiler->compileTag($this->yystack[$this->yyidx + -5]->minor, $this->yystack[$this->yyidx + -1]->minor, array('object_methode' => $this->yystack[$this->yyidx + -3]->minor)) . '<?php echo ';
		$this->_retvalue .= $this->compiler->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack[$this->yyidx + -2]->minor, 'value' => 'ob_get_clean()')) . '?>';
	}

	#line 2408 "smarty_internal_templateparser.php"
	#line 375 "smarty_internal_templateparser.y"
	function yy_r41() {
		$tag = trim(substr($this->yystack[$this->yyidx + -2]->minor, $this->lex->ldel_length));
		$this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), array('if condition' => $this->yystack[$this->yyidx + -1]->minor));
	}

	#line 2414 "smarty_internal_templateparser.php"
	#line 380 "smarty_internal_templateparser.y"
	function yy_r42() {
		$tag = trim(substr($this->yystack[$this->yyidx + -3]->minor, $this->lex->ldel_length));
		$this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, $this->yystack[$this->yyidx + -1]->minor, array('if condition' => $this->yystack[$this->yyidx + -2]->minor));
	}

	#line 2420 "smarty_internal_templateparser.php"
	#line 385 "smarty_internal_templateparser.y"
	function yy_r43() {
		$tag = trim(substr($this->yystack[$this->yyidx + -2]->minor, $this->lex->ldel_length));
		$this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), array('if condition' => $this->yystack[$this->yyidx + -1]->minor));
	}

	#line 2426 "smarty_internal_templateparser.php"
	#line 396 "smarty_internal_templateparser.y"
	function yy_r45() {
		$this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + -1]->minor, array(
				array('start' => $this->yystack[$this->yyidx + -10]->minor),
				array('ifexp' => $this->yystack[$this->yyidx + -7]->minor),
				array('var' => $this->yystack[$this->yyidx + -3]->minor),
				array('step' => $this->yystack[$this->yyidx + -2]->minor)
		)), 1);
	}

	#line 2431 "smarty_internal_templateparser.php"
	#line 400 "smarty_internal_templateparser.y"
	function yy_r46() {
		$this->_retvalue = '=' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2436 "smarty_internal_templateparser.php"
	#line 408 "smarty_internal_templateparser.y"
	function yy_r48() {
		$this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + -1]->minor, array(
				array('start' => $this->yystack[$this->yyidx + -4]->minor),
				array('to' => $this->yystack[$this->yyidx + -2]->minor)
		)), 0);
	}

	#line 2441 "smarty_internal_templateparser.php"
	#line 412 "smarty_internal_templateparser.y"
	function yy_r49() {
		$this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + -1]->minor, array(
				array('start' => $this->yystack[$this->yyidx + -6]->minor),
				array('to' => $this->yystack[$this->yyidx + -4]->minor),
				array('step' => $this->yystack[$this->yyidx + -2]->minor)
		)), 0);
	}

	#line 2446 "smarty_internal_templateparser.php"
	#line 417 "smarty_internal_templateparser.y"
	function yy_r50() {
		$this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[$this->yyidx + -1]->minor);
	}

	#line 2451 "smarty_internal_templateparser.php"
	#line 422 "smarty_internal_templateparser.y"
	function yy_r51() {
		$this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + -1]->minor, array(
				array('from' => $this->yystack[$this->yyidx + -5]->minor),
				array('item' => $this->yystack[$this->yyidx + -2]->minor)
		)));
	}

	#line 2456 "smarty_internal_templateparser.php"
	#line 426 "smarty_internal_templateparser.y"
	function yy_r52() {
		$this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + -1]->minor, array(
				array('from' => $this->yystack[$this->yyidx + -8]->minor),
				array('item' => $this->yystack[$this->yyidx + -2]->minor),
				array('key' => $this->yystack[$this->yyidx + -5]->minor)
		)));
	}

	#line 2461 "smarty_internal_templateparser.php"
	#line 430 "smarty_internal_templateparser.y"
	function yy_r53() {
		$this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + -1]->minor, array(
				array('from' => $this->yystack[$this->yyidx + -5]->minor),
				array('item' => $this->yystack[$this->yyidx + -2]->minor)
		)));
	}

	#line 2466 "smarty_internal_templateparser.php"
	#line 434 "smarty_internal_templateparser.y"
	function yy_r54() {
		$this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + -1]->minor, array(
				array('from' => $this->yystack[$this->yyidx + -8]->minor),
				array('item' => $this->yystack[$this->yyidx + -2]->minor),
				array('key' => $this->yystack[$this->yyidx + -5]->minor)
		)));
	}

	#line 2471 "smarty_internal_templateparser.php"
	#line 439 "smarty_internal_templateparser.y"
	function yy_r55() {
		$this->_retvalue = $this->compiler->compileTag('setfilter', array(), array('modifier_list' => array(array_merge(array($this->yystack[$this->yyidx + -2]->minor), $this->yystack[$this->yyidx + -1]->minor))));
	}

	#line 2476 "smarty_internal_templateparser.php"
	#line 443 "smarty_internal_templateparser.y"
	function yy_r56() {
		$this->_retvalue = $this->compiler->compileTag('setfilter', array(), array('modifier_list' => array_merge(array(array_merge(array($this->yystack[$this->yyidx + -3]->minor), $this->yystack[$this->yyidx + -2]->minor)), $this->yystack[$this->yyidx + -1]->minor)));
	}

	#line 2481 "smarty_internal_templateparser.php"
	#line 448 "smarty_internal_templateparser.y"
	function yy_r57() {
		$this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler);
	}

	#line 2486 "smarty_internal_templateparser.php"
	#line 454 "smarty_internal_templateparser.y"
	function yy_r58() {
		$this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor . 'close', array());
	}

	#line 2491 "smarty_internal_templateparser.php"
	#line 458 "smarty_internal_templateparser.y"
	function yy_r59() {
		$this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor . 'close', array(), array('modifier_list' => $this->yystack[$this->yyidx + -1]->minor));
	}

	#line 2496 "smarty_internal_templateparser.php"
	#line 463 "smarty_internal_templateparser.y"
	function yy_r60() {
		$this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor . 'close', array(), array('object_methode' => $this->yystack[$this->yyidx + -1]->minor));
	}

	#line 2501 "smarty_internal_templateparser.php"
	#line 467 "smarty_internal_templateparser.y"
	function yy_r61() {
		$this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor . 'close', array(), array(
				'object_methode' => $this->yystack[$this->yyidx + -2]->minor,
				'modifier_list' => $this->yystack[$this->yyidx + -1]->minor
		));
	}

	#line 2506 "smarty_internal_templateparser.php"
	#line 475 "smarty_internal_templateparser.y"
	function yy_r62() {
		$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
		$this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2512 "smarty_internal_templateparser.php"
	#line 481 "smarty_internal_templateparser.y"
	function yy_r63() {
		$this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2517 "smarty_internal_templateparser.php"
	#line 486 "smarty_internal_templateparser.y"
	function yy_r64() {
		$this->_retvalue = array();
	}

	#line 2522 "smarty_internal_templateparser.php"
	#line 491 "smarty_internal_templateparser.y"
	function yy_r65() {
		if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor))
		{
			$this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor => 'true');
		}
		elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor))
		{
			$this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor => 'false');
		}
		elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor))
		{
			$this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor => 'null');
		}
		else
		{
			$this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor => "'" . $this->yystack[$this->yyidx + 0]->minor . "'");
		}
	}

	#line 2535 "smarty_internal_templateparser.php"
	#line 503 "smarty_internal_templateparser.y"
	function yy_r66() {
		$this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor, " =\n\r\t") => $this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2540 "smarty_internal_templateparser.php"
	#line 511 "smarty_internal_templateparser.y"
	function yy_r68() {
		$this->_retvalue = "'" . $this->yystack[$this->yyidx + 0]->minor . "'";
	}

	#line 2545 "smarty_internal_templateparser.php"
	#line 523 "smarty_internal_templateparser.y"
	function yy_r71() {
		$this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor => $this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2550 "smarty_internal_templateparser.php"
	#line 536 "smarty_internal_templateparser.y"
	function yy_r73() {
		$this->yystack[$this->yyidx + -2]->minor[] = $this->yystack[$this->yyidx + 0]->minor;
		$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor;
	}

	#line 2556 "smarty_internal_templateparser.php"
	#line 541 "smarty_internal_templateparser.y"
	function yy_r74() {
		$this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value' => $this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2561 "smarty_internal_templateparser.php"
	#line 569 "smarty_internal_templateparser.y"
	function yy_r79() {
		$this->_retvalue = '$_smarty_tpl->getStreamVariable(\'' . $this->yystack[$this->yyidx + -2]->minor . '://' . $this->yystack[$this->yyidx + 0]->minor . '\')';
	}

	#line 2566 "smarty_internal_templateparser.php"
	#line 574 "smarty_internal_templateparser.y"
	function yy_r80() {
		$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2571 "smarty_internal_templateparser.php"
	#line 593 "smarty_internal_templateparser.y"
	function yy_r84() {
		$this->_retvalue = $this->compiler->compileTag('private_modifier', array(), array(
				'value' => $this->yystack[$this->yyidx + -1]->minor,
				'modifierlist' => $this->yystack[$this->yyidx + 0]->minor
		));
	}

	#line 2576 "smarty_internal_templateparser.php"
	#line 599 "smarty_internal_templateparser.y"
	function yy_r85() {
		$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2581 "smarty_internal_templateparser.php"
	#line 603 "smarty_internal_templateparser.y"
	function yy_r86() {
		$this->_retvalue = 'in_array(' . $this->yystack[$this->yyidx + -2]->minor . ',' . $this->yystack[$this->yyidx + 0]->minor . ')';
	}

	#line 2586 "smarty_internal_templateparser.php"
	#line 607 "smarty_internal_templateparser.y"
	function yy_r87() {
		$this->_retvalue = 'in_array(' . $this->yystack[$this->yyidx + -2]->minor . ',(array)' . $this->yystack[$this->yyidx + 0]->minor . ')';
	}

	#line 2591 "smarty_internal_templateparser.php"
	#line 615 "smarty_internal_templateparser.y"
	function yy_r89() {
		$this->_retvalue = '!(' . $this->yystack[$this->yyidx + -2]->minor . ' % ' . $this->yystack[$this->yyidx + 0]->minor . ')';
	}

	#line 2596 "smarty_internal_templateparser.php"
	#line 619 "smarty_internal_templateparser.y"
	function yy_r90() {
		$this->_retvalue = '(' . $this->yystack[$this->yyidx + -2]->minor . ' % ' . $this->yystack[$this->yyidx + 0]->minor . ')';
	}

	#line 2601 "smarty_internal_templateparser.php"
	#line 623 "smarty_internal_templateparser.y"
	function yy_r91() {
		$this->_retvalue = '!(1 & ' . $this->yystack[$this->yyidx + -1]->minor . ')';
	}

	#line 2606 "smarty_internal_templateparser.php"
	#line 627 "smarty_internal_templateparser.y"
	function yy_r92() {
		$this->_retvalue = '(1 & ' . $this->yystack[$this->yyidx + -1]->minor . ')';
	}

	#line 2611 "smarty_internal_templateparser.php"
	#line 631 "smarty_internal_templateparser.y"
	function yy_r93() {
		$this->_retvalue = '!(1 & ' . $this->yystack[$this->yyidx + -2]->minor . ' / ' . $this->yystack[$this->yyidx + 0]->minor . ')';
	}

	#line 2616 "smarty_internal_templateparser.php"
	#line 635 "smarty_internal_templateparser.y"
	function yy_r94() {
		$this->_retvalue = '(1 & ' . $this->yystack[$this->yyidx + -2]->minor . ' / ' . $this->yystack[$this->yyidx + 0]->minor . ')';
	}

	#line 2621 "smarty_internal_templateparser.php"
	#line 659 "smarty_internal_templateparser.y"
	function yy_r100() {
		$this->prefix_number++;
		$this->compiler->prefix_code[] = '<?php $_tmp' . $this->prefix_number . '=' . $this->yystack[$this->yyidx + 0]->minor . ';?>';
		$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . $this->yystack[$this->yyidx + -1]->minor . '$_tmp' . $this->prefix_number;
	}

	#line 2628 "smarty_internal_templateparser.php"
	#line 668 "smarty_internal_templateparser.y"
	function yy_r101() {
		$this->_retvalue = $this->yystack[$this->yyidx + -6]->minor . ' ? ' . $this->compileVariable("'" . $this->yystack[$this->yyidx + -2]->minor . "'") . ' : ' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2633 "smarty_internal_templateparser.php"
	#line 672 "smarty_internal_templateparser.y"
	function yy_r102() {
		$this->_retvalue = $this->yystack[$this->yyidx + -5]->minor . ' ? ' . $this->yystack[$this->yyidx + -2]->minor . ' : ' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2638 "smarty_internal_templateparser.php"
	#line 687 "smarty_internal_templateparser.y"
	function yy_r105() {
		$this->_retvalue = '!' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2643 "smarty_internal_templateparser.php"
	#line 708 "smarty_internal_templateparser.y"
	function yy_r110() {
		$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . '.' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2648 "smarty_internal_templateparser.php"
	#line 712 "smarty_internal_templateparser.y"
	function yy_r111() {
		$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor . '.';
	}

	#line 2653 "smarty_internal_templateparser.php"
	#line 716 "smarty_internal_templateparser.y"
	function yy_r112() {
		$this->_retvalue = '.' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2658 "smarty_internal_templateparser.php"
	#line 721 "smarty_internal_templateparser.y"
	function yy_r113() {
		if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor))
		{
			$this->_retvalue = 'true';
		}
		elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor))
		{
			$this->_retvalue = 'false';
		}
		elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor))
		{
			$this->_retvalue = 'null';
		}
		else
		{
			$this->_retvalue = "'" . $this->yystack[$this->yyidx + 0]->minor . "'";
		}
	}

	#line 2671 "smarty_internal_templateparser.php"
	#line 739 "smarty_internal_templateparser.y"
	function yy_r115() {
		$this->_retvalue = "(" . $this->yystack[$this->yyidx + -1]->minor . ")";
	}

	#line 2676 "smarty_internal_templateparser.php"
	#line 754 "smarty_internal_templateparser.y"
	function yy_r118() {
		if (!$this->security || isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor]) || $this->smarty->security_policy->isTrustedStaticClass($this->yystack[$this->yyidx + -2]->minor, $this->compiler))
		{
			if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor]))
			{
				$this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor] . '::' . $this->yystack[$this->yyidx + 0]->minor;
			}
			else
			{
				$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . '::' . $this->yystack[$this->yyidx + 0]->minor;
			}
		}
		else
		{
			$this->compiler->trigger_template_error("static class '" . $this->yystack[$this->yyidx + -2]->minor . "' is undefined or not allowed by security setting");
		}
	}

	#line 2689 "smarty_internal_templateparser.php"
	#line 766 "smarty_internal_templateparser.y"
	function yy_r119() {
		if ($this->yystack[$this->yyidx + -2]->minor['var'] == '\'smarty\'')
		{
			$this->_retvalue = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']) . '::' . $this->yystack[$this->yyidx + 0]->minor;
		}
		else
		{
			$this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + -2]->minor['var']) . $this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'] . '::' . $this->yystack[$this->yyidx + 0]->minor;
		}
	}

	#line 2698 "smarty_internal_templateparser.php"
	#line 775 "smarty_internal_templateparser.y"
	function yy_r120() {
		$this->prefix_number++;
		$this->compiler->prefix_code[] = '<?php ob_start();?>' . $this->yystack[$this->yyidx + 0]->minor . '<?php $_tmp' . $this->prefix_number . '=ob_get_clean();?>';
		$this->_retvalue = '$_tmp' . $this->prefix_number;
	}

	#line 2705 "smarty_internal_templateparser.php"
	#line 790 "smarty_internal_templateparser.y"
	function yy_r122() {
		if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'')
		{
			$smarty_var = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
			$this->_retvalue = $smarty_var;
		}
		else
		{
			// used for array reset,next,prev,end,current
			$this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
			$this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
			$this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']) . $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
		}
	}

	#line 2718 "smarty_internal_templateparser.php"
	#line 803 "smarty_internal_templateparser.y"
	function yy_r123() {
		$this->_retvalue = '$_smarty_tpl->tpl_vars[' . $this->yystack[$this->yyidx + -2]->minor . ']->' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2723 "smarty_internal_templateparser.php"
	#line 813 "smarty_internal_templateparser.y"
	function yy_r125() {
		$this->_retvalue = '$_smarty_tpl->getConfigVariable(\'' . $this->yystack[$this->yyidx + -1]->minor . '\')';
	}

	#line 2728 "smarty_internal_templateparser.php"
	#line 817 "smarty_internal_templateparser.y"
	function yy_r126() {
		$this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable(\'' . $this->yystack[$this->yyidx + -2]->minor . '\')) ? $tmp' . $this->yystack[$this->yyidx + 0]->minor . ' :null)';
	}

	#line 2733 "smarty_internal_templateparser.php"
	#line 821 "smarty_internal_templateparser.y"
	function yy_r127() {
		$this->_retvalue = '$_smarty_tpl->getConfigVariable(' . $this->yystack[$this->yyidx + -1]->minor . ')';
	}

	#line 2738 "smarty_internal_templateparser.php"
	#line 825 "smarty_internal_templateparser.y"
	function yy_r128() {
		$this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable(' . $this->yystack[$this->yyidx + -2]->minor . ')) ? $tmp' . $this->yystack[$this->yyidx + 0]->minor . ' : null)';
	}

	#line 2743 "smarty_internal_templateparser.php"
	#line 829 "smarty_internal_templateparser.y"
	function yy_r129() {
		$this->_retvalue = array('var' => $this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index' => $this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2748 "smarty_internal_templateparser.php"
	#line 842 "smarty_internal_templateparser.y"
	function yy_r131() {
		return;
	}

	#line 2753 "smarty_internal_templateparser.php"
	#line 848 "smarty_internal_templateparser.y"
	function yy_r132() {
		$this->_retvalue = '[' . $this->compileVariable($this->yystack[$this->yyidx + 0]->minor) . ']';
	}

	#line 2758 "smarty_internal_templateparser.php"
	#line 852 "smarty_internal_templateparser.y"
	function yy_r133() {
		$this->_retvalue = '[' . $this->compileVariable($this->yystack[$this->yyidx + -2]->minor) . '->' . $this->yystack[$this->yyidx + 0]->minor . ']';
	}

	#line 2763 "smarty_internal_templateparser.php"
	#line 856 "smarty_internal_templateparser.y"
	function yy_r134() {
		$this->_retvalue = "['" . $this->yystack[$this->yyidx + 0]->minor . "']";
	}

	#line 2768 "smarty_internal_templateparser.php"
	#line 860 "smarty_internal_templateparser.y"
	function yy_r135() {
		$this->_retvalue = "[" . $this->yystack[$this->yyidx + 0]->minor . "]";
	}

	#line 2773 "smarty_internal_templateparser.php"
	#line 864 "smarty_internal_templateparser.y"
	function yy_r136() {
		$this->_retvalue = "[" . $this->yystack[$this->yyidx + -1]->minor . "]";
	}

	#line 2778 "smarty_internal_templateparser.php"
	#line 869 "smarty_internal_templateparser.y"
	function yy_r137() {
		$this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack[$this->yyidx + -1]->minor . '\'][\'index\']') . ']';
	}

	#line 2783 "smarty_internal_templateparser.php"
	#line 873 "smarty_internal_templateparser.y"
	function yy_r138() {
		$this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack[$this->yyidx + -3]->minor . '\'][\'' . $this->yystack[$this->yyidx + -1]->minor . '\']') . ']';
	}

	#line 2788 "smarty_internal_templateparser.php"
	#line 883 "smarty_internal_templateparser.y"
	function yy_r140() {
		$this->_retvalue = '[]';
	}

	#line 2793 "smarty_internal_templateparser.php"
	#line 896 "smarty_internal_templateparser.y"
	function yy_r142() {
		$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor . '.' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2798 "smarty_internal_templateparser.php"
	#line 901 "smarty_internal_templateparser.y"
	function yy_r143() {
		$this->_retvalue = '\'' . $this->yystack[$this->yyidx + 0]->minor . '\'';
	}

	#line 2803 "smarty_internal_templateparser.php"
	#line 906 "smarty_internal_templateparser.y"
	function yy_r144() {
		$this->_retvalue = '(' . $this->yystack[$this->yyidx + -1]->minor . ')';
	}

	#line 2808 "smarty_internal_templateparser.php"
	#line 913 "smarty_internal_templateparser.y"
	function yy_r145() {
		if ($this->yystack[$this->yyidx + -1]->minor['var'] == '\'smarty\'')
		{
			$this->_retvalue = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']) . $this->yystack[$this->yyidx + 0]->minor;
		}
		else
		{
			$this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + -1]->minor['var']) . $this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'] . $this->yystack[$this->yyidx + 0]->minor;
		}
	}

	#line 2817 "smarty_internal_templateparser.php"
	#line 922 "smarty_internal_templateparser.y"
	function yy_r146() {
		$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2822 "smarty_internal_templateparser.php"
	#line 927 "smarty_internal_templateparser.y"
	function yy_r147() {
		$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2827 "smarty_internal_templateparser.php"
	#line 932 "smarty_internal_templateparser.y"
	function yy_r148() {
		if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor, 0, 1) == '_')
		{
			$this->compiler->trigger_template_error(self::Err1);
		}
		$this->_retvalue = '->' . $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2835 "smarty_internal_templateparser.php"
	#line 939 "smarty_internal_templateparser.y"
	function yy_r149() {
		if ($this->security)
		{
			$this->compiler->trigger_template_error(self::Err2);
		}
		$this->_retvalue = '->{' . $this->compileVariable($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor . '}';
	}

	#line 2843 "smarty_internal_templateparser.php"
	#line 946 "smarty_internal_templateparser.y"
	function yy_r150() {
		if ($this->security)
		{
			$this->compiler->trigger_template_error(self::Err2);
		}
		$this->_retvalue = '->{' . $this->yystack[$this->yyidx + -2]->minor . $this->yystack[$this->yyidx + 0]->minor . '}';
	}

	#line 2851 "smarty_internal_templateparser.php"
	#line 953 "smarty_internal_templateparser.y"
	function yy_r151() {
		if ($this->security)
		{
			$this->compiler->trigger_template_error(self::Err2);
		}
		$this->_retvalue = '->{\'' . $this->yystack[$this->yyidx + -4]->minor . '\'.' . $this->yystack[$this->yyidx + -2]->minor . $this->yystack[$this->yyidx + 0]->minor . '}';
	}

	#line 2859 "smarty_internal_templateparser.php"
	#line 961 "smarty_internal_templateparser.y"
	function yy_r152() {
		$this->_retvalue = '->' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2864 "smarty_internal_templateparser.php"
	#line 969 "smarty_internal_templateparser.y"
	function yy_r153() {
		if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler))
		{
			if (strcasecmp($this->yystack[$this->yyidx + -3]->minor, 'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor, 'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor, 'array') === 0 || is_callable($this->yystack[$this->yyidx + -3]->minor))
			{
				$func_name = strtolower($this->yystack[$this->yyidx + -3]->minor);
				if ($func_name == 'isset')
				{
					if (count($this->yystack[$this->yyidx + -1]->minor) == 0)
					{
						$this->compiler->trigger_template_error('Illegal number of paramer in "isset()"');
					}
					$par = implode(',', $this->yystack[$this->yyidx + -1]->minor);
					if (strncasecmp($par, '$_smarty_tpl->getConfigVariable', strlen('$_smarty_tpl->getConfigVariable')) === 0)
					{
						$this->prefix_number++;
						$this->compiler->prefix_code[] = '<?php $_tmp' . $this->prefix_number . '=' . str_replace(')', ', false)', $par) . ';?>';
						$isset_par = '$_tmp' . $this->prefix_number;
					}
					else
					{
						$isset_par = str_replace("')->value", "',null,true,false)->value", $par);
					}
					$this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(" . $isset_par . ")";
				}
				elseif (in_array($func_name, array('empty', 'reset', 'current', 'end', 'prev', 'next')))
				{
					if (count($this->yystack[$this->yyidx + -1]->minor) != 1)
					{
						$this->compiler->trigger_template_error('Illegal number of paramer in "empty()"');
					}
					if ($func_name == 'empty')
					{
						$this->_retvalue = $func_name . '(' . str_replace("')->value", "',null,true,false)->value", $this->yystack[$this->yyidx + -1]->minor[0]) . ')';
					}
					else
					{
						$this->_retvalue = $func_name . '(' . $this->yystack[$this->yyidx + -1]->minor[0] . ')';
					}
				}
				else
				{
					$this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(" . implode(',', $this->yystack[$this->yyidx + -1]->minor) . ")";
				}
			}
			else
			{
				$this->compiler->trigger_template_error("unknown function \"" . $this->yystack[$this->yyidx + -3]->minor . "\"");
			}
		}
	}

	#line 2900 "smarty_internal_templateparser.php"
	#line 1007 "smarty_internal_templateparser.y"
	function yy_r154() {
		if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor, 0, 1) == '_')
		{
			$this->compiler->trigger_template_error(self::Err1);
		}
		$this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(" . implode(',', $this->yystack[$this->yyidx + -1]->minor) . ")";
	}

	#line 2908 "smarty_internal_templateparser.php"
	#line 1014 "smarty_internal_templateparser.y"
	function yy_r155() {
		if ($this->security)
		{
			$this->compiler->trigger_template_error(self::Err2);
		}
		$this->prefix_number++;
		$this->compiler->prefix_code[] = '<?php $_tmp' . $this->prefix_number . '=' . $this->compileVariable("'" . $this->yystack[$this->yyidx + -3]->minor . "'") . ';?>';
		$this->_retvalue = '$_tmp' . $this->prefix_number . '(' . implode(',', $this->yystack[$this->yyidx + -1]->minor) . ')';
	}

	#line 2918 "smarty_internal_templateparser.php"
	#line 1025 "smarty_internal_templateparser.y"
	function yy_r156() {
		$this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor, array($this->yystack[$this->yyidx + 0]->minor));
	}

	#line 2923 "smarty_internal_templateparser.php"
	#line 1042 "smarty_internal_templateparser.y"
	function yy_r159() {
		$this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor, array(array_merge($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor)));
	}

	#line 2928 "smarty_internal_templateparser.php"
	#line 1046 "smarty_internal_templateparser.y"
	function yy_r160() {
		$this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor));
	}

	#line 2933 "smarty_internal_templateparser.php"
	#line 1054 "smarty_internal_templateparser.y"
	function yy_r162() {
		$this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2938 "smarty_internal_templateparser.php"
	#line 1062 "smarty_internal_templateparser.y"
	function yy_r163() {
		$this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor);
	}

	#line 2943 "smarty_internal_templateparser.php"
	#line 1096 "smarty_internal_templateparser.y"
	function yy_r170() {
		$this->_retvalue = '$' . $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2948 "smarty_internal_templateparser.php"
	#line 1101 "smarty_internal_templateparser.y"
	function yy_r171() {
		$this->_retvalue = '$' . $this->yystack[$this->yyidx + -2]->minor . $this->yystack[$this->yyidx + -1]->minor . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 2953 "smarty_internal_templateparser.php"
	#line 1107 "smarty_internal_templateparser.y"
	function yy_r172() {
		$this->_retvalue = '==';
	}

	#line 2958 "smarty_internal_templateparser.php"
	#line 1111 "smarty_internal_templateparser.y"
	function yy_r173() {
		$this->_retvalue = '!=';
	}

	#line 2963 "smarty_internal_templateparser.php"
	#line 1115 "smarty_internal_templateparser.y"
	function yy_r174() {
		$this->_retvalue = '>';
	}

	#line 2968 "smarty_internal_templateparser.php"
	#line 1119 "smarty_internal_templateparser.y"
	function yy_r175() {
		$this->_retvalue = '<';
	}

	#line 2973 "smarty_internal_templateparser.php"
	#line 1123 "smarty_internal_templateparser.y"
	function yy_r176() {
		$this->_retvalue = '>=';
	}

	#line 2978 "smarty_internal_templateparser.php"
	#line 1127 "smarty_internal_templateparser.y"
	function yy_r177() {
		$this->_retvalue = '<=';
	}

	#line 2983 "smarty_internal_templateparser.php"
	#line 1131 "smarty_internal_templateparser.y"
	function yy_r178() {
		$this->_retvalue = '===';
	}

	#line 2988 "smarty_internal_templateparser.php"
	#line 1135 "smarty_internal_templateparser.y"
	function yy_r179() {
		$this->_retvalue = '!==';
	}

	#line 2993 "smarty_internal_templateparser.php"
	#line 1139 "smarty_internal_templateparser.y"
	function yy_r180() {
		$this->_retvalue = '%';
	}

	#line 2998 "smarty_internal_templateparser.php"
	#line 1143 "smarty_internal_templateparser.y"
	function yy_r181() {
		$this->_retvalue = '&&';
	}

	#line 3003 "smarty_internal_templateparser.php"
	#line 1147 "smarty_internal_templateparser.y"
	function yy_r182() {
		$this->_retvalue = '||';
	}

	#line 3008 "smarty_internal_templateparser.php"
	#line 1151 "smarty_internal_templateparser.y"
	function yy_r183() {
		$this->_retvalue = ' XOR ';
	}

	#line 3013 "smarty_internal_templateparser.php"
	#line 1158 "smarty_internal_templateparser.y"
	function yy_r184() {
		$this->_retvalue = 'array(' . $this->yystack[$this->yyidx + -1]->minor . ')';
	}

	#line 3018 "smarty_internal_templateparser.php"
	#line 1166 "smarty_internal_templateparser.y"
	function yy_r186() {
		$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . ',' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 3023 "smarty_internal_templateparser.php"
	#line 1174 "smarty_internal_templateparser.y"
	function yy_r188() {
		$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . '=>' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 3028 "smarty_internal_templateparser.php"
	#line 1178 "smarty_internal_templateparser.y"
	function yy_r189() {
		$this->_retvalue = '\'' . $this->yystack[$this->yyidx + -2]->minor . '\'=>' . $this->yystack[$this->yyidx + 0]->minor;
	}

	#line 3033 "smarty_internal_templateparser.php"
	#line 1190 "smarty_internal_templateparser.y"
	function yy_r191() {
		$this->_retvalue = "''";
	}

	#line 3038 "smarty_internal_templateparser.php"
	#line 1194 "smarty_internal_templateparser.y"
	function yy_r192() {
		$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php();
	}

	#line 3043 "smarty_internal_templateparser.php"
	#line 1199 "smarty_internal_templateparser.y"
	function yy_r193() {
		$this->yystack[$this->yyidx + -1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor);
		$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
	}

	#line 3049 "smarty_internal_templateparser.php"
	#line 1204 "smarty_internal_templateparser.y"
	function yy_r194() {
		$this->_retvalue = new _smarty_doublequoted($this, $this->yystack[$this->yyidx + 0]->minor);
	}

	#line 3054 "smarty_internal_templateparser.php"
	#line 1208 "smarty_internal_templateparser.y"
	function yy_r195() {
		$this->_retvalue = new _smarty_code($this, '(string)' . $this->yystack[$this->yyidx + -1]->minor);
	}

	#line 3059 "smarty_internal_templateparser.php"
	#line 1216 "smarty_internal_templateparser.y"
	function yy_r197() {
		$this->_retvalue = new _smarty_code($this, '(string)$_smarty_tpl->tpl_vars[\'' . substr($this->yystack[$this->yyidx + 0]->minor, 1) . '\']->value');
	}

	#line 3064 "smarty_internal_templateparser.php"
	#line 1224 "smarty_internal_templateparser.y"
	function yy_r199() {
		$this->_retvalue = new _smarty_code($this, '(string)(' . $this->yystack[$this->yyidx + -1]->minor . ')');
	}

	#line 3069 "smarty_internal_templateparser.php"
	#line 1228 "smarty_internal_templateparser.y"
	function yy_r200() {
		$this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + 0]->minor);
	}

	#line 3074 "smarty_internal_templateparser.php"
	#line 1232 "smarty_internal_templateparser.y"
	function yy_r201() {
		$this->_retvalue = new _smarty_dq_content($this, $this->yystack[$this->yyidx + 0]->minor);
	}

	#line 3079 "smarty_internal_templateparser.php"

	private $_retvalue;

	function yy_reduce($yyruleno) {
		$yymsp = $this->yystack[$this->yyidx];
		if (self::$yyTraceFILE && $yyruleno >= 0 && $yyruleno < count(self::$yyRuleName))
		{
			fprintf(self::$yyTraceFILE, "%sReduce (%d) [%s].\n", self::$yyTracePrompt, $yyruleno, self::$yyRuleName[$yyruleno]);
		}

		$this->_retvalue = $yy_lefthand_side = null;
		if (array_key_exists($yyruleno, self::$yyReduceMap))
		{
			// call the action
			$this->_retvalue = null;
			$this->{'yy_r' . self::$yyReduceMap[$yyruleno]}();
			$yy_lefthand_side = $this->_retvalue;
		}
		$yygoto = self::$yyRuleInfo[$yyruleno]['lhs'];
		$yysize = self::$yyRuleInfo[$yyruleno]['rhs'];
		$this->yyidx -= $yysize;
		for ($i = $yysize; $i; $i--)
		{
			// pop all of the right-hand side parameters
			array_pop($this->yystack);
		}
		$yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
		if ($yyact < self::YYNSTATE)
		{
			if (!self::$yyTraceFILE && $yysize)
			{
				$this->yyidx++;
				$x = new TP_yyStackEntry;
				$x->stateno = $yyact;
				$x->major = $yygoto;
				$x->minor = $yy_lefthand_side;
				$this->yystack[$this->yyidx] = $x;
			}
			else
			{
				$this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
			}
		}
		elseif ($yyact == self::YYNSTATE + self::YYNRULE + 1)
		{
			$this->yy_accept();
		}
	}

	function yy_parse_failed() {
		if (self::$yyTraceFILE)
		{
			fprintf(self::$yyTraceFILE, "%sFail!\n", self::$yyTracePrompt);
		}
		while ($this->yyidx >= 0)
		{
			$this->yy_pop_parser_stack();
		}
	}

	function yy_syntax_error($yymajor, $TOKEN) {
		#line 77 "smarty_internal_templateparser.y"

		$this->internalError = true;
		$this->yymajor = $yymajor;
		$this->compiler->trigger_template_error();
		#line 3142 "smarty_internal_templateparser.php"
	}

	function yy_accept() {
		if (self::$yyTraceFILE)
		{
			fprintf(self::$yyTraceFILE, "%sAccept!\n", self::$yyTracePrompt);
		}
		while ($this->yyidx >= 0)
		{
			$stack = $this->yy_pop_parser_stack();
		}
		#line 69 "smarty_internal_templateparser.y"

		$this->successful = !$this->internalError;
		$this->internalError = false;
		$this->retvalue = $this->_retvalue;
		//echo $this->retvalue."\n\n";
		#line 3160 "smarty_internal_templateparser.php"
	}

	function doParse($yymajor, $yytokenvalue) {
		$yyerrorhit = 0; /* True if yymajor has invoked an error */

		if ($this->yyidx === null || $this->yyidx < 0)
		{
			$this->yyidx = 0;
			$this->yyerrcnt = -1;
			$x = new TP_yyStackEntry;
			$x->stateno = 0;
			$x->major = 0;
			$this->yystack = array();
			array_push($this->yystack, $x);
		}
		$yyendofinput = ($yymajor == 0);

		if (self::$yyTraceFILE)
		{
			fprintf(self::$yyTraceFILE, "%sInput %s\n", self::$yyTracePrompt, $this->yyTokenName[$yymajor]);
		}

		do
		{
			$yyact = $this->yy_find_shift_action($yymajor);
			if ($yymajor < self::YYERRORSYMBOL && !$this->yy_is_expected_token($yymajor))
			{
				// force a syntax error
				$yyact = self::YY_ERROR_ACTION;
			}
			if ($yyact < self::YYNSTATE)
			{
				$this->yy_shift($yyact, $yymajor, $yytokenvalue);
				$this->yyerrcnt--;
				if ($yyendofinput && $this->yyidx >= 0)
				{
					$yymajor = 0;
				}
				else
				{
					$yymajor = self::YYNOCODE;
				}
			}
			elseif ($yyact < self::YYNSTATE + self::YYNRULE)
			{
				$this->yy_reduce($yyact - self::YYNSTATE);
			}
			elseif ($yyact == self::YY_ERROR_ACTION)
			{
				if (self::$yyTraceFILE)
				{
					fprintf(self::$yyTraceFILE, "%sSyntax Error!\n", self::$yyTracePrompt);
				}
				if (self::YYERRORSYMBOL)
				{
					if ($this->yyerrcnt < 0)
					{
						$this->yy_syntax_error($yymajor, $yytokenvalue);
					}
					$yymx = $this->yystack[$this->yyidx]->major;
					if ($yymx == self::YYERRORSYMBOL || $yyerrorhit)
					{
						if (self::$yyTraceFILE)
						{
							fprintf(self::$yyTraceFILE, "%sDiscard input token %s\n", self::$yyTracePrompt, $this->yyTokenName[$yymajor]);
						}
						$this->yy_destructor($yymajor, $yytokenvalue);
						$yymajor = self::YYNOCODE;
					}
					else
					{
						while ($this->yyidx >= 0 && $yymx != self::YYERRORSYMBOL && ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE)
						{
							$this->yy_pop_parser_stack();
						}
						if ($this->yyidx < 0 || $yymajor == 0)
						{
							$this->yy_destructor($yymajor, $yytokenvalue);
							$this->yy_parse_failed();
							$yymajor = self::YYNOCODE;
						}
						elseif ($yymx != self::YYERRORSYMBOL)
						{
							$u2 = 0;
							$this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
						}
					}
					$this->yyerrcnt = 3;
					$yyerrorhit = 1;
				}
				else
				{
					if ($this->yyerrcnt <= 0)
					{
						$this->yy_syntax_error($yymajor, $yytokenvalue);
					}
					$this->yyerrcnt = 3;
					$this->yy_destructor($yymajor, $yytokenvalue);
					if ($yyendofinput)
					{
						$this->yy_parse_failed();
					}
					$yymajor = self::YYNOCODE;
				}
			}
			else
			{
				$this->yy_accept();
				$yymajor = self::YYNOCODE;
			}
		} while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);
	}
}
